On Sat, 4 Dec 2010, Michael D. Berger wrote:
To: centos@centos.org From: Michael D. Berger m_d_berger_1900@yahoo.com Subject: [CentOS] # chkconfig: kill at run level 3
In the control script of my daemon in /etc/init.d?, I have # chkconfig: 35 97 3
The result of this is that I have links: /etc/rc.d/rc1.d/K03... /etc/rc.d/rc3.d/S97... /etc/rc.d/rc5.d/S97...
As mentioned in a previous thread, my complex daemon throws an exception when I shutdown. Perhaps things might be better if I had: /etc/rc.d/rc3.d/K03...
Might this be a good idea? If so, how can I make it happen automatically?
What I would suggest is using mc file/directory browser:
cd to /etc/init.d/
create a directory called tmp-backups
make a copy of all the init scripts in above directory
Working in /etc/init.d/ find the start/stop script that's giving you problems.
Copy it to another filename, eg (your-initials)-scriptname
(That way any init scripts you add will all be in one place, starting with your initials) and easy to find.
Gut the new script, and use it as a skeleton to create your own init start/stop script.
Decide what you want the script to do at start time, and at stop time.
Alter the parameters for when the script starts and stops, at the top of the file.
Make this script run at shutdown before the main script you copied it from.
You might need to add a shell conditional to prevent the script from shutting down your app straight away at boot time.
Use chkconfig to automatically create the necessary start/stop files for each run level.
See 'pinfo chkconfig'
NAME chkconfig - updates and queries runlevel information for system services
SYNOPSIS chkconfig --list [name] chkconfig --add name chkconfig --del name chkconfig [--level levels] name <on|off|reset|resetpriorities> chkconfig [--level levels] name
DESCRIPTION
chkconfig provides a simple command-line tool for maintaining the /etc/rc[0-6].d directory hierarchy by relieving system administra-tors of the task of directly manipulating the numerous symbolic links in those directories.
You might even be able to create a stop script without the associated start script.
Each start/stop script in /etc/rc0.d - rc6.d is a symlink to the actual script in /etc/init.d/
The rc*.d start scripts have the format:
@S00scriptname
and the stop scripts
@K00scriptname
These scripts are run in ascending numeric order, so you will need to create a kill script (K00myscript) that is numbered befroe the script you want to affect.
Please see this old SuSE documentation for a good description of the Linux boot process:
http://linuxmafia.com/linux/suse-linux-internals/part2.html
HTH
Kind Regards,
Keith Roberts