是什么原因导致 insserv: warning: script 'XXX.sh'缺少 LSB 标签和覆盖,以及如何防止它?
pi@raspberrypi /etc/init.d $ sudo rm 5_*
pi@raspberrypi /etc/init.d $ sudo vi /etc/init.d/5_second_cron
pi@raspberrypi /etc/init.d $ sudo chmod +x /etc/init.d/5_second_cron
pi@raspberrypi /etc/init.d $ sudo update-rc.d /etc/init.d/5_second_cron defaults^C
pi@raspberrypi /etc/init.d $
5_second_cron.sh如下:
#!/bin/bash
while true
do
/usr/bin/php /var/www/cron.php
sleep 5
done
编辑。尝试了以下方法。当我执行时,脚本只是“挂起” $ sudo update-rc.d /etc/init.d/5_second_cron
。
pi@raspberrypi /etc/init.d $ sudo vi /etc/init.d/5_second_cron
pi@raspberrypi /etc/init.d $ sudo chmod +x /etc/init.d/5_second_cron
pi@raspberrypi /etc/init.d $ sudo update-rc.d /etc/init.d/5_second_cron defaults^.C
pi@raspberrypi /etc/init.d $
5_second_cron 如下:
#!/bin/bash
# /etc/init.d/5_second_cron
### BEGIN INIT INFO
# Provides: 5_second_cron
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: PHP Loop
# Description: Initiate a given PHP file every 5 seconds
### END INIT INFO
while true
do
/usr/bin/php /var/www/cron.php
sleep 5
done
exit 0
编辑2。又乱搞了一些,现在是这样的:
pi@raspberrypi /etc/init.d $ sudo update-rc.d /etc/init.d/5_second_cron defaults
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d//etc/init.d/5_second_cron
答案1
很抱歉这么晚才回答。
初始化脚本并不意味着持续运行。我的意思是初始化脚本应该启动程序,然后退出,让程序在后台运行。这样,init 系统就知道已达到运行级别。
因此,我建议将您的脚本放入一个单独的文件夹中,例如/usr/bin
.这就是它包含的内容:
#!/bin/sh
while true
do
/usr/bin/php /var/www/cron.php
sleep 5
done
在您的初始化脚本中,输入以下内容:
#!/bin/sh
### BEGIN INIT INFO
# Provides: 5_second_cron
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: PHP Loop
# Description: Initiate a given PHP file every 5 seconds
### END INIT INFO
case "$1" in
start)
setsid /path/to/your/script.sh >/dev/null 2>&1 < /dev/null &
;;
*)
;;
esac
这使得脚本接受参数start
(这是它的调用方式),并且还将实际脚本作为后台守护进程从进程中分离出来。
完成这些编辑后,只需运行:
$ sudo insserv 5_second_cron