May 27

Just today one of my friend are pm me and ask how to make his tomcat service at /etc/init.d/tomcat to run when the server reboot. At the first time i just tell him to use chkconfig because the os that he use was CentOS

What is chkconfig ?

Chkconfig is a basic system utility. It updates and queries runlevelinformation for system services. Chkconfig manipulates the numerous symbolic links in /etc/rc*.d, to relieve system administrators of some of the drudgery of manually editing the symbolic links.

chkconfig –list [name]
chkconfig –add name
chkconfig –del name
chkconfig [–level levels] name <on|off|reset>
chkconfig [–level levels] name

But when my friend use chkconfig there were error :

# chkconfig –levels 235 tomcat on
service tomcat does not support chkconfig

okay my friend ask me what is the 235 means , 235 is runlevel that the script starts.
For instance, if we called this script /etc/init.d/new-service and ran chkconfig new-service on, it would be active in runlevels 2,3 and 5.

0-6 are runlevels. Typically for Redhat based distributions:
0 – Halt the system
1 – Single-user mode
2 – Multi-user mode (without networking)
3 – Multi-user mode
5 – Multi-user mode, graphical login
6 – Reboot the system

you can check your service run level by using chkconfig –list:

# chkconfig –list
courier-authlib  0:off   1:off   2:on    3:on    4:on    5:on    6:off
courier-imap      0:off   1:off   2:on    3:on    4:on    5:on    6:off
crond                     0:off   1:off   2:on    3:on    4:on    5:on    6:off
httpd                      0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables                 0:off   1:off   2:on    3:on    4:on    5:on    6:off
ldap                         0:off   1:off   2:off   3:off   4:off     5:off   6:off
lm_sensors          0:off   1:off   2:on    3:on    4:on    5:on    6:off
lsws                         0:off   1:off   2:on    3:on    4:off   5:on    6:off
mcstrans               0:off   1:off   2:on    3:on    4:on    5:on    6:off
messagebus          0:off   1:off   2:off   3:on    4:on    5:on    6:off
mysqld                   0:off   1:off   2:off   3:off   4:off   5:off   6:off
named                    0:off   1:off   2:off   3:off   4:off   5:off   6:off
netconsole           0:off   1:off   2:off   3:off   4:off   5:off   6:off
netfs                        0:off   1:off   2:off   3:off   4:off   5:off   6:off
netplugd               0:off   1:off   2:off   3:off   4:off   5:off   6:off
network                0:off   1:off   2:on    3:on   4:on   5:on   6:off
portmap               0:off   1:off   2:off   3:off   4:off   5:off   6:off
rdisc                       0:off   1:off   2:off   3:off   4:off   5:off   6:off
restorecond        0:off   1:off   2:on    3:on    4:on  5:on    6:off
snmpd                   0:off   1:off   2:off   3:off   4:off   5:off   6:off
snmptrapd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
sshd                       0:off   1:off   2:on    3:on    4:on    5:on    6:off
syslog                   0:off   1:off   2:on    3:on    4:on    5:on    6:off
winbind               0:off   1:off   2:off   3:off   4:off   5:off   6:off
xinetd                  0:off   1:off   2:on    3:on    4:on    5:on    6:off
about the service tomcat does not support chkconfig error , after some searching it turn’s out. In order to support chkconfig, an init script must:
1.  Be located in /etc/rc.d/init.d (which /etc/init.d is a symlink to)
2.  Have a commented out line that contains “chkconfig: <default  runlevels for this service> <start priority> <stop priority>”
3.  Have a commented out line that contains “description: <a description of the service>”
4.  Upon successful service startup, place a lock file in  /var/lock/subsys that matches the name of the service script.  Upon  successful service shutdown, the lockfile must be removed.

okay i ask my friend to add this on the tomcat script
#!/bin/sh
#
# Tomcat Server
#
# chkconfig: 345 96 30
# description: Java servlet container

and after some reboot itis working :) , the tomcat script are executed on reboot time, here is the detail script

#!/bin/sh
#
# Tomcat Server
#
# chkconfig: 345 96 30
# description: Java servlet container

JAVA_HOME=/opt/jdk

PATH=${JAVA_HOME}/bin:${PATH}

TOMCAT_START=/opt/tomcat/bin/startup.sh

TOMCAT_STOP=/opt/tomcat/bin/shutdown.sh

export JAVA_HOME PATH

start()
{
if [ -x ${TOMCAT_START} ]; then
echo “Starting tomcat server…”
${TOMCAT_START} &
else
echo “Cannot start tomcat server”
fi
}

stop()
{
if [ -x ${TOMCAT_STOP} ]; then
echo “Stopping tomcat server…”
${TOMCAT_STOP} &
else
echo “Cannot stop tomcat server”
fi
}

restart()
{
stop
sleep 10
start
}

status()
{
echo “No status available for tomcat server”
}

case “$1″ in
‘start’)
start
;;
‘stop’)
stop
;;
‘restart’)
restart
;;
‘status’)
status
;;
*)
echo “Please supply an argument [start|stop|restart]”
esac