Choosing and Switching Init Systems on Artix Linux Without Pulling in systemd
Problem: Keeping a systemd‑free Artix Linux while installing familiar Arch software. When you boot an Artix ISO you already have a chosen init system (OpenRC, runit, s6, or dinit) as PID 1.
09 Aug 2025, 07:21 UTC

Problem: Keeping a systemd‑free Artix Linux while installing familiar Arch software
When you boot an Artix ISO you already have a chosen init system (OpenRC, runit, s6, or dinit) as PID 1. The challenge appears later: installing a package from the standard Arch repositories can silently pull in systemd as a dependency, breaking the init‑system isolation you started with.
Thesis: Use the official Artix repositories and the artix‑archlinux‑support meta‑package to install Arch‑origin software without inviting systemd, and switch init systems safely when needed.
Installing Artix with a specific init system
Artix provides variant ISOs named artix‑-base‑.iso. Boot the variant that matches the init you want, then follow the normal installer. After installation, verify the init:
# Run as root or with sudo
ps -p 1 -o comm=
The output should be the init name, e.g., openrc.
Adding Arch compatibility without systemd
Enable the artix-archlinux-support repository, which rebuilds Arch packages against the chosen init’s dependencies.
# Edit /etc/pacman.conf as root
# Add the following lines at the end of the file
[artix-archlinux-support]
Server = https://mirror.artixlinux.org/repos/$arch/artix-archlinux-support/$repo
# Save and synchronize
sudo pacman -Sy
Now install a typical Arch package, for example vim:
sudo pacman -S vim
Check that systemd was not pulled in:
pacman -Qi vim | grep -i depends
If the dependency list contains only libraries and the chosen init’s packages, the isolation holds.
Switching init systems after installation
Artix supports changing the init system by installing the target meta‑package and removing the old one. The process is documented but may need manual service‑file adjustments for desktop environments or third‑party services.
Worked example: moving from OpenRC to runit
Install the runit meta‑package and its base:
sudo pacman -S artix-runitRemove the OpenRC meta‑package (this will also pull out OpenRC‑specific dependencies):
sudo pacman -Rns artix-openrcEnable runit services for the components you use. For a basic console login, enable the getty service:
sudo ln -s /etc/runit/sv/agetty-tty1 /etc/runit/runsvdir/default/Reboot and verify the new PID 1:
ps -p 1 -o comm=Expect
runit.
Trade‑offs and limitations
Switching init systems is not fully automated. Services that rely on OpenRC’s /etc/conf.d files or on systemd unit files will need manual conversion or may not start. Desktop environments such as GNOME assume systemd‑logind; on Artix you may need to install elogind or use a display manager that works with your chosen init. Always keep a backup of /etc before removing the old init meta‑package.
Practical verification after a switch
- Confirm PID 1:
ps -p 1 -o comm= - Ensure no stray systemd packages:
pacman -Qs systemdshould return nothing. - Test a critical service (e.g.,
sshd):sudo sv status sshdfor runit orsudo rc-service sshd statusfor OpenRC.
Actionable closing
Start with the Artix variant that matches your preferred init, enable artix-archlinux-support to keep Arch software clean, and use the meta‑package swap procedure when you need to change init systems. Verify each step with the commands above, and be prepared to adjust service files manually for any third‑party software that expects a different init framework.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.