Friday, May 22, 2009

Run Level Services

You will notice that there are quite a lot of services enabled on your system. But many runlevel services (Stand-Alone Services) are not related services like kudzu which is responsible for detecting and configuring new and/or changed hardware on your system. This service is only run during the boot process. Ensure not to disable runlevel services that are needed by the system to run smoothly.

Here are examples of Red Hat Runlevel System Services which you may or may not want to enable:

  • gpm needed if you want to use the mouse at the console
  • kudzu important for detecting new hardware
  • syslog important for syslog services
  • netfs needed only if there are NFS shares that should be mounted at boot time
  • network important for starting network interfaces (e.g. eth0, eth1, bonding,...)
  • random used for the system entropy pool
  • atd needed if the at(1) service is used instead of cron
  • apmd Advanced Power Management (APM) daemon is used for laptops and some desktops
  • isdn needed if ISDN is being used
  • iptables needed if Netfilter (iptables) Firewall is being used
  • ip6tables needed if ip6tables Firewall is being used
  • pcmcia not needed on servers - needed for laptops
  • irqbalance important for distributing interrupts across all CPUs
  • sendmail needed if Sendmail is used - Procmail should be used which is more secure
  • autofs needed if automounter is used - production applications should not be dependent on automounter
  • sshd important for logins via SSH
  • portmap needed if e.g. NFS is being used
  • nfslock needed if NFS shares are mounted
  • nfs needed if server runs the NFS server
  • mdmonitor needed only if software RAID is being used
  • crond important for running cron jobs
  • xinetd needed if xinetd services are being used, see /etc/xinetd.d/ for list of services
  • cups needed if CUPS is used for the printing system
  • rhnsd needed if server should connect to RHN to check for software updates etc.
  • sysstat needed to reset system statistics logs
  • audit needed only if Linux Audit Subsystem (LAuS) should run for collecting system call audit records
  • psacct needed only if kernel process accounting information is needed
  • smartd important for monitoring disk problems if hard disks support SMART technology
  • netdump important if kernel oops data and memory dumps should be sent to a Netdump server for server crashes

The start/stop scripts of all runlevel services can be found in the /etc/init.d directory. For example, if you don't know what the atd service does, go to/etc/init.d and open the file atd. And in the script look for lines that start programs. In the atd script the "daemon /usr/sbin/atd" line starts the binary atd. Now having the name of the program that is started by this service, you can check the online pages of atd by running man atd. This will help you to find out more about a system service.

To permanently disable e.g. the runlevel service nfs, run:

chkconfig nfs off

To immediately disable the runlevel service nfs, run:

/etc/init.d/nfs stop