Switching Artix Linux from OpenRC to runit: Step‑by‑step Guide
Replace the OpenRC init system with runit on an Artix Linux installation while keeping the system bootable and services functional.
11 Dec 2025, 18:51 UTC

Desired outcome
Replace the OpenRC init system with runit on an existing Artix Linux installation, ensuring that the system boots successfully and essential services are supervised by runit.
Prerequisites
- An installed Artix Linux system currently using OpenRC as the init system.
- Root access (or ability to use
sudo). - Synchronized Pacman databases (
sudo pacman -Sy). - Working network connectivity to download packages from the Artix repositories.
- A bootloader that supports adding custom kernel entries (GRUB is assumed).
Procedure
- Install the runit collection and related bootloader support:
sudo pacman -S artix-runit artix-runit-bootThe
artix-runitmeta‑package provides the runit service collection;artix-runit-bootadds a GRUB entry for booting with runit as PID 1. - Enable the runit boot entry:
sudo grub-mkconfig -o /boot/grub/grub.cfgThis regenerates the GRUB configuration and should add a menu entry titled something like “Artix Linux, with runit”. Verify its presence in the GRUB menu before rebooting.
- Disable OpenRC services to avoid conflicts:
List all enabled OpenRC services and disable them:
sudo rc-update show | grep -v '^\s*$' | awk '{print $1}' | while read svc; do sudo rc-update del $svc default; doneThis removes the services from the OpenRC default runlevel, preventing them from being started by OpenRC if the system inadvertently falls back to it.
- Reboot and select the runit entry:
Restart the machine. At the GRUB screen, choose the entry that mentions runit. The system should boot with runit as PID 1.
- (Optional) Remove OpenRC packages after verification:
Only after confirming that runit is working correctly, you may uninstall the OpenRC meta‑package:
sudo pacman -Rns artix-openrcKeep the package installed until you have verified that all essential services are running under runit.
Expected checks
- Verify the init process:
After login, run:
ps -p 1 -o comm=The output should be
runit. - Check a supervised service:
For a common service such as
dhcpcd:sv status dhcpcdExpected output includes a line indicating the service is
up(ordownif intentionally stopped) and shows the supervision directory under/etc/runit/sv. - Look for init‑related errors:
Examine the boot journal:
journalctl -b | grep -i runitNo fatal errors should appear; any warnings about missing service directories should be investigated before proceeding.
Recovery options
If the system fails to boot or essential services are missing:
- Boot from an Artix Linux live ISO.
- Mount the root partition (e.g.,
sudo mount /dev/sda2 /mnt) and any separate boot/efi partitions. - Chroot into the installed system:
- Re‑enable the OpenRC boot entry by reinstalling the OpenRC meta‑package and regenerating GRUB:
- Exit the chroot, unmount, and reboot. The system should now boot using OpenRC.
- Once OpenRC is functional, you can revisit the runit switch, ensuring that equivalent runit service directories exist for any services you rely on.
sudo arch-chroot /mnt
pacman -S artix-openrc
grub-mkconfig -o /boot/grub/grub.cfg
Limitations and notes
- Some packages provide only OpenRC init scripts; equivalent runit service directories may need to be created manually or obtained from the
artix-runitrepository. - Removing
artix-openrcbefore verifying runit can leave the system unbootable if a required service lacks a runit equivalent. - The procedure assumes GRUB as the bootloader; other bootloaders (e.g., systemd‑boot, EFISTUB) require analogous steps to add a runit kernel entry.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.