sysv-rc-conf(8) Run-level configuration for SysV like init script links



When using either GUI layout described below, all configuration changes to the symlinks will happen immediately, not when the program exits.

Using the Default layout

The default (simple) layout shows in a grid fashion all of the services that are in "init.d" and which runlevels they are turned on at. For example, where the "ssh" row and 3 column intersect, if there is an 'X' in the box there that means the ssh service will be turned on when entering runlevel 3. If there is no checkbox it can mean that either there are no links to the service in that specific runlevel, or that the service is turned off when entering that runlevel. If more configuration detail is needed, see the next paragraph and the --priority option.

Using the Priority layout

The priority (advanced) layout also uses a grid fashion, but instead of checkboxes there are text boxes that can have a few different values. If the text box is blank, that means there isn't a symlink in that runlevel for that service. This means that when changing into that runlevel that the service will not be started or stopped, which is significant. If the text box starts with the letter K that means that the service will be stopped when entering that runlevel. If the text box starts with the letter S that means the service will be started when entering that runlevel. The two digits following is the order in which the services are started. That means that "S08iptables" would start before "S20ssh". For more information see your system documentation.


To move around use the arrow keys, or if the terminal support it, the mouse. Typically there is more then one page of services (unless the terminal screen is large), to move between the pages use CTRL-n or CTRL-p, or simply arrow key down or up at the bottom or top of the screen, respectively. The bottom of the screen also shows these movement commands for quick reference. To restore the symlinks back to their original state before the sysv-rc-conf was run, press the r key. The h key will display a quick reference help screen.

Default layout

When using the default layout use the space bar to toggle the service on / off. An 'X' in the checkbox indicates that the service is on.

Priority layout

The priority layout uses the default movement keys. In order to edit the fields you can use CTRL-d to delete the character in front of the cursor or backspace to backspace. Use CTRL-b or CTRL-f to move the cursor backwards or forwards within the field. Note that only S, K, or any digit is allowed to be entered into the field.

Starting / Stopping Services

To start a service now, press the "+" or "=" key. To stop a service now, press the "-" key.

This will call "/etc/init.d/service start" or "/etc/init.d/service stop".


Note: Feel free to skip this section

sysv-rc-conf stores a cache of all the symlink information from "/etc/rc{runlevel}.d/" in "/var/lib/sysv-rc-conf/services" (See the --cache option to change the location of this file). It uses this cache to make an intelligent decision on what priority number to give the K or S link when they are changed in the simple layout. This cache is updated/created everytime the program is launched. The program needs to run with root privileges in order to update the cache. The format of the file is as follows:


Here's a few examples:

  2 K 74 ntpd
  2 K 50 xinetd
  3 S 08 iptables
  3 S 80 sendmail

sysv-rc-conf will first see if it can get an exact match from the cache. For example, if the symlink for "cron" in runlevel 3 is S89cron and you uncheck it, sysv-rc-conf will first see if there is an entry in the cache that looks like "3 K nn cron", if so it will use nn for the priority number.

If there wasn't a match, sysv-rc-conf will then see if there is another S or K (whichever you're switching to, so in this example, K) entry on a different runlevel - so an entry like "i K nn cron", where i is any runlevel. If found, the link will use nn.

If there still wasn't a match, sysv-rc-conf will look for the opposite of S or K in any run level, and use 100 - that priority. So in our example, "i S nn cron". If nn is 20, then it will use 80 (100 - 20), since that is typically the way that the priority numbers are used.

If there still isn't a match, the default priority of 20 for S links is used, and the default priority of 80 for K links is used.