1. Create a service script file under /etc/init.d/. Sample file abc attached below.
Pay attention to the comment line starting with "chkconfig". It specify the run level, start priority and terminate priority.
In the sample, "chkconfig: 5 99 01" means only activated at run level 5 and it is last started and first terminated.
2. Add a service by: sudo chkconfig --add abc
3. Enable the service by: sudo chkconfig abc on
TIPS: When adding a Linux service, never use a init script with same name as the main program. For example, the init script's name of abc service can be anything rather than "abcd" which is the name of the service program. Otherwise when you want kill the program by kill `ps -C abcd -o pid=`, not only it will kill the service program but also kill the service control script.
######################### Content of /etc/init.d/abc
#!/bin/sh
#
# chkconfig: 5 99 01
# description: Starts and stops the abc service
#
RETVAL=0
SERVICE_NAME=abc
START_SERVICE_PROG="/usr/bin/abcd"
SERVICE_PROG_PID=`ps -C abcd -o pid=`
start() {
echo -n "Starting $SERVICE_NAME service: "
[ -n "$SERVICE_PROG_PID" ] && echo -n "Already running: " || $START_SERVICE_PROG
RETVAL=$?
[ $RETVAL -eq 0 ] && echo "OK" || echo "Failed"
return $RETVAL
}
stop() {
echo -n "Shutting down $SERVICE_NAME service: "
[ -n "$SERVICE_PROG_PID" ] && kill $SERVICE_PROG_PID || echo -n "Not running: "
RETVAL=$?
[ $RETVAL -eq 0 ] && echo "OK" || echo "Failed"
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac
exit $?