首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Bernstein的Daemontools中添加RPC特性

在Bernstein的Daemontools中添加RPC特性
EN

Stack Overflow用户
提问于 2011-06-05 17:38:13
回答 2查看 121关注 0票数 2

我是一个来自意大利的计算机科学专业的学生,我必须做一个基于修改的版本的D.J.Bernstein的Daemontools的项目,它必须在Unix下实现远程过程调用。

通常,使用以下语法的工具可以获得一个守护进程:

代码语言:javascript
复制
svc -u /service/NameOfDaemon

下面是这个:

代码语言:javascript
复制
svc -d /service/NameOfDaemon

这样我就可以在本地控制一个守护进程。其思想是添加一个代码块,以便能够控制位于远程计算机上的守护进程,这将是理想的语法:

代码语言:javascript
复制
svc -u IP/service/NameOfDaemon

其中IP代表目标机器的实际IP,用户知道。

在这些天里,我搜索并了解了RPC和DTools,但是我有点被困住了,有人能帮我开始吗?

也许也有人推荐我的项目阅读?

EN

回答 2

Stack Overflow用户

发布于 2011-06-05 18:26:40

unix这样做的方式是:

代码语言:javascript
复制
ssh -n root@remotehost svc -u /service/NameOfDaemon

unix哲学是关于创建一些小工具,这些工具可以很好地完成一件事情,并与其他工具一起工作。svc是一种可以在本地机器上控制守护进程的工具。ssh可以在远程机器上运行工具。不需要另一种工具。

如果您绝对必须有一个可以同时控制本地和远程守护进程的命令,那么正如Chris建议的那样,您可以编写一个shell脚本,根据需要运行svcssh

票数 2
EN

Stack Overflow用户

发布于 2011-06-05 17:47:05

supervise使用Unix域套接字接收请求.使用Unix域套接字的优点是可以通过通常的文件系统权限来控制对它的访问--在本例中,它只允许根访问套接字,因此通常必须以根用户的身份运行svc

但是,一旦您通过网络,您就必须考虑网络身份验证(除非您希望任何Tom、Dick和Harry启动和停止您的服务)。如果你能解决这个问题,剩下的就很简单了:

  • 编写一个运行在tcpserver上的服务,该服务可以在远程计算机上为您调用svc。如果tcpserver提供的访问控制对您来说是足够的,那么很好而且很好;否则您的服务必须处理剩余的内容。
    • 为了安全起见,不要将此服务作为root运行(即始终在tcpserver命令行上指定tcpserver)。相反,只需更改supervise套接字的(组)所有权,这样服务运行的用户就可以读取和写入它们。

  • 在封装在svc周围的客户端上编写一个shell脚本。它检查“远程服务器”语法,如果使用,它将连接到远程服务(否则只会像往常一样调用svc )。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6244616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档