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
The script must have 2 lines:
for example:
After you add the above headers you can run
chkconfig --add <service>
.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.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
through5
.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:
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:
This time,
sudo chkconfig --add sidekiq
gave no complaint. Then when I ransudo chkconfig --list sidekiq
, the sidekiq service was shown ason
for the appropriate runlevels.The priority numbers do not need to be unique. They only represent an order of services.
Chkconfig did not have an issue adding the "it" service. Otherwise you would be limited to 100 services.
Also in my example, it would run before oracle because the scripts are run alphabetically.