Red Hat / Fedora Run Levels

By Paulus, 11 April, 2009

Red Hat / Fedora run level configuration differs from Gentoo when it comes to configuring daemons to start on boot. In Gentoo, after installing a daemon such as apache:

# rc-update add apache2 default

The above we are adding apache to the default run level which is usually run level 5

The run levels are as followed:

Run Level Description
1 Single User
2 Multi-user
3 Multi-user with Networking
4 Unused
5 Multi-user with Networking and X11
6 Reboot

The default run level can be found by running:

# runlevel

To switch run levels:

# runlevel 3

Remember from the table above that run level we're switching to in the example is multi-user with networking.

When running Fedora or Red Hat EL you can see the status of all daemons:

# chkconfig

I've run into the issue of using the system-config-services where trying to change the status of a daemon:

Traceback (most recent call last):
  File "/usr/bin/system-config-services", line 805, in on_serviceDisable_activate
    service.disable ()
  File "/usr/lib/python2.5/site-packages/slip/dbus/polkit.py", line 53, in enable_proxy_wrapper
    sessionbus = dbus.SessionBus ()
  File "/usr/lib/python2.5/site-packages/dbus/_dbus.py", line 219, in __new__
    mainloop=mainloop)
  File "/usr/lib/python2.5/site-packages/dbus/_dbus.py", line 108, in __new__
    bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop)
  File "/usr/lib/python2.5/site-packages/dbus/bus.py", line 125, in __new__
    bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

The GUI tools are great, but coming from a time where such GUI tools were only dreams, I prefer to do my work from the command line:

# chkconfig --level runlevel daemon on|off

runlevel - the run level you wish to make changes to. Multiple runlevels can be combined here such as level 3 and 5 would be 35.
daemon - the daemon you wish to add or remove by appending an on or off

# chkconfig --level 35 httpd on

Above we're adding httpd to run levels 3 and 5(multi-user with networking and multi-user with networking and X11)