Linux

Where Does OpenRC Store Services and Runlevels?

OpenRC keeps service scripts in /etc/init.d, runlevels in /etc/runlevels, and per-service config in /etc/conf.d on Linux.

Last updated

OpenRC spreads boot config across three folders and each has one job. Init scripts live in /etc/init.d. Runlevels are folders of symlinks under /etc/runlevels. Service options live as plain files in /etc/conf.d.

The symlink design is the part to learn. Nothing is copied when you enable a service. One link appears in the runlevel folder and boot picks it up. That makes listing enabled services a plain ls.

Where OpenRC stores this, by platform

Linux
/etc/runlevels

Runlevel membership as symlinks. default/ holds normal boot services. List it to see what starts at boot.

Linux
/etc/conf.d

Per-service variables sourced by init scripts. One file per service, plain KEY=value lines.

Frequently asked questions

How do I enable a service at boot with OpenRC?

Add a symlink in the runlevel folder pointing at /etc/init.d/name, or run rc-update add name runlevel. Delete the link to remove it. The script itself stays put.

Where do OpenRC service options go?

Edit the matching file in /etc/conf.d. Many init scripts source that file for options like ports and flags. Restart the service afterwards with rc-service name restart.

Where are OpenRC boot logs?

Check /var/log/rc.log. Boot and service start messages land there when logging is enabled in /etc/rc.conf.

Notice an outdated path? Let us know.