微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

脚本没有在启动 – 停止守护进程启动时启动

我的脚本(位于/etc/init.d)正在创build一个pid文件($ PIDFILE),但是没有进程正在运行。 我的守护脚本包括

start-stop-daemon --start --quiet --pidfile $PIDFILE -m -b --startas $DAEMON --test > /dev/null || return 1

该脚本手动执行时工作正常。

标准或最好的方法来保持活动进程由init.d启动

Nginx守护进程停止失败

pipe理PHP守护进程

如何在Windows上将Apache Ignite作为守护程序运行

在Debian上的Daemonize()问题

您需要创建启动链接

sudo update-rc.d SCRIPT_NAME defaults

然后重启。 SCRIPT_NAME是/etc/init.d脚本的名称(没有路径)

能够得到它的工作,但尝试了很多东西,不知道究竟是什么修复它(可能是在脚本或配置错误)。 然而,由于在互联网的深渊中找不到相同的东西,我学到了很多,想要分享

看来Ubuntu(以及包括Mint在内的许多其他基于Ubuntu的发行版)已经迁移到Upstart进行作业和服务管理。 Upstart包括SysVinit(使用/etc/init.d守护进程)兼容性,仍然可以使用update-rc.d来管理守护进程(所以如果你熟悉这个用法,你可以继续使用它)。 Upstart方法是在/ etc / init文件夹中使用一个.conf文件。 我的SCRIPT.conf文件非常简单(我正在使用python脚本):

start on filesystem or runlevel [2345] stop on runlevel [016] exec python /usr/share/python-support/SCRIPT/SCRIPT.py

这个简单的文件完全用case语句替换/etc/init.d中的标准脚本,以提供[start | stop | restart | reload]函数和指向/ usr / bin / SCRIPT的指针。 你可以看到它包含了通常在/etc/rc*.d文件中找到的runlevel控件(这样就省去了几个文件)。

我尝试update-rc.d为我的守护进程创建必要的/etc/rc*.d/文件。 我的守护程序bash脚本位于/etc/init.d中,包含start-stop-daemon命令,就像我原来的问题一样。 (该命令也可以从终端正常工作。)

我有/etc/rc*.d/文件,/etc/init.d和/etc/init/SCRIPT.conf文件中的bash脚本在启动过程中,似乎Upstart可能会首先查找.conf文件的方向因为SysVinit命令service SCRIPT [start|stop|restart|reload]返回未知实例,但是您可以发现进程正在运行ps -elf | grep SCRIPT_FILE ps -elf | grep SCRIPT_FILE 。

有一件有趣的事情要注意,使用.conf时,守护进程是分叉的。 上面写的脚本只产生守护进程的一个分支。 然而,原始脚本的完全独立性可以通过使用expect fork或expect daemon和respawn (参见Upstart Cookbook以供参考)。 使用这些将确保您的守护进程永远不会被杀死(至少通过使用kill命令)。

我继续使用sudo initctl reload-configuration命令来测试我的守护进程和启动进程。 这会重新载入conf文件,你可以用sudo [start|stop|restart] SCRIPT命令测试守护进程。 启动命令的结果是:

$ sudo start SCRIPT SCRIPT start/running,process xxxx $ sudo restart SCRIPT SCRIPT start/running,process xxxx $ sudo stop SCRIPT SCRIPT stop/waiting

此外,/var/log/upstart/SCRIPT.log中还有一个很好的日志,可以在启动过程中为守护进程提供有用的信息。 我仍然有一个非常恼人的错误,防止根显示osd消息通知发送从我的守护进程。 我的日志文件包含一个gtk警告(我将打开另一个问题来请求帮助)。

希望这有助于他人开发他们的守护进程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐