I was creating a startup BASH script, when I was given an error similar to:
The script is missing LSB tags
So I went and put in some LSB tags, but it still does not start on startup. The script works perfectly if I start it manually
# /etc/init.d/myscript
It is a very simple script that is intended to startup a PERL script in the same folder (/etc/init.d/fcgiwrap.pl).
#!/bin/bash
### 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
# Carry out specific functions when asked to by the system
touch /var/lock/fcgiwrap
case "$1" in
start)
echo "Starting script /etc/init.d/fcgiwrap.pl"
/etc/init.d/fcgiwrap.pl
;;
stop)
echo "You can't stop this service. Consider deleting it"
;;
*)
echo "Usage: /etc/init.d/blah {start}"
exit 1
;;
esac
exit 0
In order for the script to do things "at startup," you need to run commands ( rc.d
) rules for it. Otherwise it is just a script floating in /etc/init.d
.
For a guide on rc.d
, checkout https://www.debian-administration.org/article/28/Making_scripts_run_at_boot_time_with_Debian , and look particularly for the update-rc.d
command.
Also, if you're going to use an LSB style header, you might as well actually fill out the values to have meaning, instead of leaving those defaults.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.