在Ubuntu启动时启动恶魔进程的问题
我尝试了启动Deamon进程。 我试图在启动期间运行此命令以使用命令dtnd -c DTN2/dtn/dtn.conf -o DTN2/dtn/log -d
在ubuntu 14.04中启动DTN2 dtnd -c DTN2/dtn/dtn.conf -o DTN2/dtn/log -d
我在计算机的一个位置将其作为shell脚本,并将其添加到rc.local
例如sh '/pathtoscript/script.sh'
。 它在我使用sudo /etc/init.d/rc.local start
。 但是重启后它没有启动。 我怎样才能确保这个运行? 使用init.d
创建脚本或添加Upstart作业将是在ubuntu 14.04启动时运行deamon的更好方法。
现在,Ubuntu回答。
您正在使用Ubuntu Linux。 您已经拥有upstart或systemd(在此特定情况下为前者)。 不要从编写System 5 rc
脚本开始。
/etc/rc.local
是一种双向后兼容机制,因为它是一种机制的向后兼容机制,它本身就是System 5 rc
的兼容机制。 正如https://askubuntu.com/a/618138/43344解决的问题所示,使用/etc/rc.local
可能会出现严重错误。 不要以使用rc.local
开头。
新贵和版本14
所以写一个upstart作业文件。
它看起来像这样:
#etet/init/dtnd.conf 描述“DTN2守护进程” 从文件系统和静态网络开始 在运行级别停止[016] env DAEMON ='/ usr / sbin / dtnd' 重生 exec / usr / sbin / dtnd -c /etc/dtn/dtn.conf -o / var / log / dtn / log
调整您的日志和配置设置; 并以通常的方式使用initctl start
, initctl stop
等作为upstart作业。
不要使用-d
选项。 该程序已经在服务管理器下运行, 已经 “守护进程”。
systemd和版本15
所以写一个systemd服务单元。
迁移到systemd的第一条规则适用于…… 有人已经这样做了。 有关示例,请参阅2012年由假名撰写的dtnd.service
。
再次: 不要使用-d
选项。 该程序已经在服务管理器下运行, 已经 “守护进程”。
另请注意,您不需要-o
选项。 以普通方式记录到标准输出/标准错误,systemd将其写入日志。
以通常的方式用作systemctl start
, systemctl stop
, systemctl status
等作为systemd服务。 特别是,使用systemctl enable
确保在系统引导程序中自动启动服务。