我有一个Debian服务器,我只需要在启动时运行脚本。
我读到: https : //www.debian-administration.org/article/28/Making_scripts_run_at_boot_time_with_Debian
我现在得到:insserv:警告:脚本'缺lessLSB标签和覆盖
所以看起来我现在必须添加:
### BEGIN INIT INFO # Provides: scriptname # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO
现在看起来很疯狂:像30行脚本就是为了在启动时运行一个程序。
有没有一种工具可以做到这一点?
问候
如果您的脚本“只是一个脚本”,并且不启动一个守护进程,请考虑使用/etc/rc.local (以root用户身份执行)或crontab (作为您的用户执行)。
两个例子:
/etc/rc.local
#!/bin/sh -e #(Multiple lines of comments removed.) /usr/local/bin/your-script.sh exit 0
crontab (通过例如crontab -e编辑)
#(Multiple lines of comments removed.) @reboot /usr/local/bin/your-script.sh
编辑1:只是读你的评论:如果你的脚本启动守护进程,应该一直运行,我build议不要使用rc.local或crontab ,而是写一个适当的(或多个) init.d脚本。 这样你/你的系统就可以干净地重新启动/重新加载/启动/停止守护进程等。
编辑2:你把它叫疯了,但LSB tags提供了一些值:“通过logginginit.d脚本的运行时依赖关系,可以validation当前的引导顺序,使用这些依赖关系命令引导,并运行引导并行脚本来加速启动过程。“ 有关更多详细信息,请访问Debian wiki 。
(顺便说一句:这是一个警告,实际上,这取决于你,如何以及如何处理这个问题。)
supervisord也是一个选项。 你会再写一些行来启动你的node.js和PHP的东西,但他们会less一些。
你可以使用monitd来完成这个任务,只需要编写一些monit的定义,它就会为你启动守护进程。 但是,为什么你不使用正确的LSB脚本? 编写它并不困难(你只是写一次),它是如何实现这一点最清洁和最有价值的方式。