首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何复制守护进程?

如何复制守护进程?
EN

Unix & Linux用户
提问于 2015-07-16 07:15:12
回答 3查看 1.1K关注 0票数 2

我想运行两个dnscrypt客户端代理实例,但在引导时使它们自动启动有困难。以下是我尝试过的:

rc.local中,这是第一个:

代码语言:javascript
复制
/usr/local/sbin/dnscrypt-proxy -a 127.0.0.1:40 -u _dnscrypt-proxy -d -l /dev/null -R dnscrypt.eu-dk

第二项是:

代码语言:javascript
复制
/usr/local/sbin/dnscrypt-proxy2 -a 127.0.0.1:41 -u _dnscrypt-proxy2 -d -l /dev/null -R dnscrypt.org-fr

cd/usr/local/sbin,做了一个cp dnscrypt-proxy dnscrypt-proxy2,然后当我重新启动时,我会得到[ERROR] Unknown User : [dnscrypt-proxy2].

然后我搜索并看到了这个问题,然后手动编辑了/etc/passwd,并添加了一个新用户仔细复制默认的_dnscrypt-proxy用户并更改了id,因为它现在有以下两个条目:

代码语言:javascript
复制
_dnscrypt-proxy:*688:688:dnscrypt-proxy user:/var/empty:/sbin/nologin 
_dnscrypt-proxy2:*689:689:dnscrypt-proxy2 user:/var/empty:/sbin/nologin`

当我重新启动时,未知的用户错误仍然存在。文件夹上的快速ls显示我确实复制了该文件夹。Ps aux向我展示了守护进程尚未启动。谷歌搜索对我没有帮助,所以我求助于这里的Linux专家。我的操作系统是OpenBSD 5.7。

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2015-07-16 07:36:34

首先,以下是对未知用户错误为什么仍然存在的问题的具体回答:错误在于如何创建用户。有更多的文件需要修复,而不仅仅是/etc/passwd

正确创建用户的最简单方法是将该行从/etc/passwd中移除,然后运行adduser -noconfig -shell -/sbin/nologin。(编辑/etc/passwd时,请使用vipw而不是vi /etc/passwd --请参阅手册页以获得解释!)

第二,您实际上不需要创建第二个用户。您可以运行同一程序两次,而不需要程序的副本或运行该程序的第二个用户。使用相同的用户和二进制(但设置不同)运行第二个守护进程所需的操作非常简单:

  • 将守护进程的init脚本复制到另一个名称中。(你已经这么做了。)
  • 编辑新的init脚本。保持二进制文件和用户名的相同路径。只改变你想要被改变的选项!

你准备好逃跑了!

票数 4
EN

Unix & Linux用户

发布于 2015-07-16 07:29:22

以下几点:

  1. 您不需要复制dnscrypt-proxy二进制文件--只需使用不同的选项多次调用它即可
  2. 当您创建_dnscrypt-proxy2用户时,您是否也创建了他们的主组?我看到用户的GID不同于_dnscrypt-proxy (689而不是688),但是您没有提到复制组。如果没有,请创建缺少的组。您可以通过编辑/etc/group和添加缺少的条目(我猜是通过复制组_dnscrypt-proxy的条目来实现这一点)。

第2点应该能解决你的问题。

票数 2
EN

Unix & Linux用户

发布于 2016-07-23 18:04:51

来自rcctl(8)手册页:

为不同目的运行给定守护进程的第二个副本的推荐方法是创建到其rc.d(8)控制脚本的符号链接:# ln -s /etc/rc.d/snmpd /etc/rc.d/snmpd 6# rcctl设置# rcctl snmpd6标志-D addr=2001:db8::1234 # rcctl start snmpd6上的snmpd6状态。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/216381

复制
相关文章

相似问题

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