Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I am trying to add to the auto start at boottime a linux service through the

chkconfig -add <servicename>

and I get a message saying

service <servicename> does not support chkconfig

I am using Red Hat Enterprise 4. The script I am trying to add to the autostart at boottime is the following:

#!/bin/sh

soffice_start() {   if [ -x /opt/openoffice.org2.4/program/soffice ]; then
        echo "Starting Open Office as a Service"
        #echo " soffice -headless -accept=socket,port=8100;urp;StarOffice.ServiceManager
-nofirststartwizard"
        /opt/openoffice.org2.4/program/soffice
-headless -accept="socket,host=0.0.0.0,port=8100;urp;StarOffice.ServiceManager"
-nofirststartwizard &   else
        echo "Error: Could not find the soffice program. Cannot Start SOffice."   fi }

soffice_stop() {   if [ -x /usr/bin/killall ]; then
        echo "Stopping Openoffice"
        /usr/bin/killall soffice 2> /dev/null   else
        echo "Eroor: Could not find killall.  Cannot Stop soffice."   fi }

case "$1" in  'start')    soffice_start    ;;  'stop')    soffice_stop    sleep 2    ;;  'restart')    soffice_stop    sleep 5  soffice_start    ;;  *)    if [ -x /usr/bin/basename ]; then
        echo "usage: '/usr/bin/basename $0' start| stop| restart"    else
        echo "usage: $0 start|stop|restart"    fi esac
share|improve this question
    
is your service in init.d/ –  Rungano Jun 22 '09 at 15:12
    
Yes. It is on inet.d. Thanks for your question. –  Geo Jun 22 '09 at 15:53

3 Answers 3

up vote 27 down vote accepted

The script must have 2 lines:

# chkconfig: <levels> <start> <stop>
# description: <some description>

for example:

# chkconfig: 345 99 01
# description: some startup script

345 - levels to configure
99 - startup order
01 - stop order

After you add the above headers you can run chkconfig --add

share|improve this answer
    
The extra space on the second line was added by markdown, it is not needed –  katriel Jun 22 '09 at 15:19
    
Thanks, those two lines did it! –  Geo Jun 22 '09 at 16:10
    
Here is some more information on the Run Levels and other things. tldp.org/HOWTO/HighQuality-Apps-HOWTO/boot.html –  Pred Aug 21 '14 at 21:00

While katriel has already answered this with the bare minimum needed to create an init script, I think you'd also be well served with looking at /etc/init.d/skeleton and using that as a template on which to base your init script. You'll end up with a much more consistent and readable script.

share|improve this answer
1  
Theoretically good advice, but /etc/init.d/skeleton is not present on RHEL systems, only on Debian and related (Ubuntu, I think). –  Harlan Feb 18 '11 at 16:09

It sounds like Geo's specific problem has already been solved, but I ran into a similar message while trying to set up a Rails app with sidekiq as a managed service. I'll explain my solution here in case it helps any other newbies like me.

I'm working on a CentOS install, and chkconfig is already set up with several other services like httpd, mysql, and redis. Note that most services need only be enabled on runlevels 3 through 5.

chkconfig --list
> httpd             0:off   1:off   2:on    3:on    4:on    5:on    6:off
> mysqld            0:off   1:off   2:on    3:on    4:on    5:on    6:off
> redis-server      0:off   1:off   2:on    3:on    4:on    5:on    6:off
> (etc...)

I needed to add a new script for the sidekiq service, so I grabbed the script at https://gist.github.com/CD1212/5326706, modified it to fit my app's parameters, and saved it at /etc/rc.d/init.d/sidekiq (owned by root like all the other scripts there).

However when I tried to register this new service, I got the chkconfig error:

sudo chkconfig --add sidekiq
> service sidekiq does not support chkconfig

After some extra reading I discovered that the priority numbers defined at the top of each chkconfig script must be unique. A clearer error message would have been nice! Another script had shutdown priority level 75, so I changed mine to 76 and tried again. Here's the head of my init script:

#!/bin/bash
#
# sidekiq    Init script for Sidekiq
#
# chkconfig: 345 99 76
# processname: sidekiq
# pidfile: /var/www/visual_testing_tool/sidekiq.pid
# description: Starts and Stops Sidekiq message processor for the Rails app.
#

This time, sudo chkconfig --add sidekiq gave no complaint. Then when I ran sudo chkconfig --list sidekiq, the sidekiq service was shown as on for the appropriate runlevels.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.