Switching Init Systems on Artix Linux: From OpenRC to runit
Learn how to switch from OpenRC to runit on Artix Linux using meta‑packages, verify the change, handle AUR compatibility, and roll back if needed.
05 Jul 2026, 03:30 UTC

Why Change the Init System on Artix Linux
Artix Linux inherits Arch’s package base but replaces PID 1 with a choice of init systems. Users often look for a lighter supervisor, faster boot, or a different service model. The distribution’s design lets you swap init systems without breaking access to the Arch repositories or the AUR, because only the PID 1 and its service scripts are replaced.
How the Init System Meta‑Packages Work
Artix provides four meta‑packages: artix-openrc, artix-runit, artix-s6, and artix-dinit. Each installs the chosen init, its default service scripts, and the artix-init-system wrapper that manages symlinks and Pacman hooks. Installing one of these packages automatically removes the previously active init meta‑package via a Pacman trigger, ensuring only one init system is present at a time.
Preparing for the Switch
Changing PID 1 affects all running services, so it is safest to perform the migration from a live console or single‑user mode. Before starting:
- Ensure you have a working internet connection and can access the Arch mirrors.
- Note the essential services you rely on (e.g.,
sshd,NetworkManager,cronie). - Optionally, create a backup of
/etcor at least the service directories for the current init.
Worked Example: Moving from OpenRC to runit
The following steps illustrate a typical switch. Replace placeholders with your actual service names where needed.
- Install the target meta‑package:
This pulls in runit, its service scripts, and triggers the removal ofsudo pacman -S artix-runitartix-openrc. - Disable OpenRC services:
List enabled OpenRC services and remove them from the default runlevel:
For each service shown (e.g.,rc-update show | grep defaultsshd,dhcpcd), run:sudo rc-update delete service default - Enable equivalent runit services:
Artix provides runit service directories under
/etc/runit/sv. Create a symlink for each service you need in/var/service:
If a service lacks a ready‑made runit script, you can write a simple one or use the genericsudo ln -s /etc/runit/sv/sshd /var/service/sshd sudo ln -s /etc/runit/sv/dhcpcd /var/service/dhcpcd # repeat for other servicessysvinitcompatibility layer provided byartix-sysvinit. - Reboot to activate the new PID 1:
sudo reboot
Verifying the Change
After the system comes back up, confirm that runit is now PID 1:
ps -p 1 -o comm=
The output should be runit. List installed init meta‑packages to ensure only one is present:
pacman -Qs artix-
Check a known service, for example sshd, with the runit command:
sv status sshd
You should see a line indicating the service is up (e.g., run: sshd: (pid 1234) 5s).
Limitations and Practical Checks
While Artix preserves Arch compatibility, some AUR packages assume systemd units and may fail to start without them. In such cases you have two options:
- Create a custom service script for your chosen init and place it in the appropriate directory (
/etc/openrc/init.d,/etc/runit/sv, etc.). - Install the
artix-systemd-shimpackage, which provides a minimal systemd compatibility layer that can satisfy unit‑file dependencies for many AUR packages.
Another practical consideration is orphaned processes. Switching init while the system is multi‑user can leave services started under the old PID 1 without a supervisor. Performing the change from a single‑user target (systemd.unit=rescue.target on the kernel line) or from a live environment eliminates this risk.
Rolling Back to OpenRC
If you need to revert, the process is symmetric:
- Boot into a live console or single‑user mode.
- Reinstall the OpenRC meta‑package:
sudo pacman -S artix-openrc. - Remove the runit meta‑package:
sudo pacman -R artix-runit. - Disable any runit symlinks (
sudo rm /var/service/*) and re‑enable OpenRC services withrc-update add service default. - Reboot and verify PID 1 returns
openrc.
By following these steps you can safely experiment with different init supervisors on Artix Linux while retaining access to the full Arch ecosystem.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.