init.d script startup problems
Solution 1
You might try to use the insserv command. From the "man insserv" command on a 10.10 installation, I can read:
insserv - Enable an installed system init script.
Solution 2
You can try to run this in terminal:
sudo chmod 755 /etc/init.d/couchpotato
sudo update-rc.d couchpotato defaults
================================
And when you want to disable it from running at startup:
sudo update-rc.d -f couchpotato remove
To find out more information do:
man update-rc.d
Solution 3
I never could get the supplied init.d script to work. I could run it just fine, but init.d would start couchpotato, but I could never connect to it. I went ahead and created my own dirty script for it. This should work assuming you use the path ~/.couchpotato for your installdir.
### BEGIN INIT INFO
# Provides: CouchPotato application instance
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Should-Start: $NetworkManager
# Should-Stop: $NetworkManager
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts instance of CouchPotato
# Description: starts instance of CouchPotato using start-stop-daemon
### END INIT INFO
USER="youruser"
case "$1" in
start)
echo "Starting $DESC"
/home/micdawg/.couchpotato/CouchPotato.py &
;;
stop)
echo "Stopping $DESC"
PID=`ps -ef | grep CouchPotato.py | grep -v grep | awk '{print $2}'`
kill -9 $PID
;;
restart|force-reload)
echo "Restarting $DESC"
PID=`ps -ef | grep CouchPotato.py | grep -v grep | awk '{print $2}'`
kill -9 $PID
sleep 15
/home/micdawg/.couchpotato/CouchPotato.py &
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
Solution 4
from the man: runlevel information in the init.d script LSB comment header is used (..) Such header is required to be present in init.d scripts. See the insserv( manual page for details about the LSB header format.
Example:
### BEGIN INIT INFO
# Provides: apache2
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop apache2 web server
### END INIT INFO
Solution 5
The accepted answer assumes that "upstart" is being used to start processes when the system boots. This is not always so. I am using Ubuntu 9.04 Minimal running on a virtual private server and this does not use upstart.
In this case, in order for the system to notice and run the scripts in /etc/init.d you need to run update-rc.d which created symbolic links to your inet.d script in places where the system will look for instructions when it boots up.
Something like this:
update-rc.d couchpotato defaults 92
The 92 is a sensible value for the priority, delaying the startup of your script until other important stuff is running.
Here are more details about running update-rc.d
Related videos on Youtube
Sessiz Saat
Updated on September 17, 2022Comments
-
Sessiz Saat over 1 year
I Have this init.d script which I am trying to get to startup with ubuntu however it wont run at startup. It does work when i type "sudo /etc/init.d/couchpotato start" though. Any ideas on how to get it starting at boot?
#! /bin/sh ### BEGIN INIT INFO # Provides: CouchPotato application instance # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts instance of CouchPotato # Description: starts instance of CouchPotato using start-stop-daemon ### END INIT INFO ############### EDIT ME ################## # path to app APP_PATH=/usr/local/sbin/couchpotato # path to python bin DAEMON=/usr/bin/python # startup args DAEMON_OPTS=" CouchPotato.py -q" # script name NAME=couchpotato # app name DESC=CouchPotato # user RUN_AS=root PID_FILE=/var/run/couchpotato.pid ############### END EDIT ME ################## test -x $DAEMON || exit 0 set -e case "$1" in start) echo "Starting $DESC" start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS ;; stop) echo "Stopping $DESC" start-stop-daemon --stop --pidfile $PID_FILE ;; restart|force-reload) echo "Restarting $DESC" start-stop-daemon --stop --pidfile $PID_FILE sleep 15 start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
-
Sessiz Saat over 13 yearsI've already chmod-ed it with a+x and update-rc.d. I get "System start/stop links for /etc/init.d/couchpotato already exist."
-
Sessiz Saat over 13 yearsAh Brilliant. That did the trick...
-
Pitto over 13 yearshow? just running sudo insserv?
-
Pitto over 13 yearsNo luck for me with this suggestion...
-
Pitto over 13 yearsI get the "insserv: warning: script 'K20acpi-support' missing LSB tags and overrides The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs" Error :(
-
Sparhawk almost 10 yearsYes, this answer needs more details. From
man insserv
: "insserv is a low level tool used by update-rc.d… It is not recommended to execute insserv directly… update-rc.d is the recommended interface for managing init scripts." The other answer suggestingsudo update-rc.d couchpotato defaults
seems preferable. -
gatoatigrado over 9 yearsYesss, thank you so much! I'm not sure about whatever
couchpotato
is (maybe just an example?) but for my setup, this seemed necessary to make Zoneminder work ... its default rc.d setting of 20 was too low [high priority] for it to start up correctly.