Quick and Dirty How To Write an Init Script

June 4, 2007

Often times you may have an application that needs to be boot strapped or started automatically via an Init script. Below is a quick and dirty sample Init script to help you get on your way. Also the the article will cover chkconfig options to start the script at the correct run level.

The script will reside in /etc/init.d/BLAH

#!/bin/sh
# SAMPLE BASIC INIT SCRIPT
#
# Below is the chkconfig syntax for auto startup at different run levels
# Note runlevel 1 2 and 3, 69 is the Start order and 68 is the Stop order
# Make sure these are unique by looking into /etc/rc.d/*
# Also below is the description which is necessary.
#
# chkconfig: 123 69 68
# description: Description of the Service
#
# Below is the source function library
#
. /etc/init.d/functions
#
if [ -f /etc/sysconfig/BLAH ]; then
. /etc/sysconfig/BLAH
fi
#
# Below is the Script Goodness controlling the service
#
case "$1" in
start)
echo -n "Start service BLAH"
/usr/sbin/BLAH start
;;
stop)
echo -n "Stop service BLAH"
/usr/sbin/BLAH stop
;;
restart)
echo -n "Restart service BLAH"
/usr/sbin/BLAH restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac

Now to run chkconfig commands:

bash-3.00$ chkconfig BLAH --add
bash-3.00$ chkconfig BLAH on

The above will read the Init script and add and enable the script at the proper run level
specified in the script. Appending the start command on boot.

You could also do the below to be more specific in which run level to enable:

bash-3.00$  chkconfig --level 123 BLAH on (to turn on at run level 1 2 3)

or

bash-3.00$ chkconfig --level 123 BLAH off (to turn off at run level 1 2 3)

To list all run:

bash-3.00$ chkconfig --list

This should be a quick and dirty to get you going.

Comments are closed.