chkconfig provides a simple command-line tool for maintaining the
/etc/rc.d directory hierarchy by relieving system administrators of
the task of directly manipulating the numerous symbolic links in those
directories.
This implementation of chkconfig was inspired by the chkconfig
command present in the IRIX operating system. Rather than maintaining
configuration information outside of the /etc/rc.d hierarchy, however,
this version directly manages the symlinks in /etc/rc.d. This leaves all
of the configuration information regarding what services init
starts in a single location.
chkconfig has five distinct functions: adding new services for
management, removing services from management, listing the current
startup information for services, changing the startup information
for services, and checking the startup state of a particular service.
When chkconfig is run without any options, it displays usage
information. If only a service name is given, it checks to see if
the service is configured to be started in the current runlevel. If
it is, chkconfig returns true; otherwise it returns false. The
--level option may be used to have chkconfig query an
alternative runlevel rather than the current one.
If one of on, off, or reset is specified after the
service name, chkconfig changes the startup information for the
specified service. The on and off flags cause the service
to be started or stopped, respectively, in the runlevels being changed.
The reset flag resets the startup information for the service to
whatever is specified in the init script in question.
By default, the on and off options affect only runlevels 3, 4,
and 5, while reset affects all of the runlevels. The --level
option may be used to specify which runlevels are affected.
Note that for every service, each runlevel has either a start script
or a stop script. When switching runlevels, init will not re-start
an already-started service, and will not re-stop a service that is
not running.
Each service which should be manageable by chkconfig needs two
or more commented lines added to its init.d script. The first line
tells chkconfig what runlevels the service should be started in
by default, as well as the start and stop priority levels. If the service
should not, by default, be started in any runlevels, a - should be
used in place of the runlevels list. The second
line contains a description for the service, and may be extended across
multiple lines with backslash continuation.
For example, random.init has these three lines: