![insserv: 경고: 'XXX.sh' 스크립트에 LSB 태그가 누락되어 재정의되었습니다.](https://linux55.com/image/74860/insserv%3A%20%EA%B2%BD%EA%B3%A0%3A%20'XXX.sh'%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%20LSB%20%ED%83%9C%EA%B7%B8%EA%B0%80%20%EB%88%84%EB%9D%BD%EB%90%98%EC%96%B4%20%EC%9E%AC%EC%A0%95%EC%9D%98%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
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 스크립트가 프로그램을 시작한 다음 종료하고 프로그램이 백그라운드에서 실행되도록 해야 한다는 것입니다. 이런 방식으로 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