Files
euri-iso/docs/openrc.md
T
c-ludenberg 442980a7af feat: dinit or die
why the FUCK did i think making an init selector was a good idea
artix themselves dont even ship services in their online installer
they just give you a bare system and say "figure it out" and
it WORKS because people can just install their init of choice
afterwards. but nooooo i had to be clever and build a whole
netinstall-add monstrosity with openrc/runit/s6 service groups
that broke constantly because basestrap --overwrite is a lie
and init packages conflict with each other and sddm-openrc +
lightdm-openrc both Provide: init-displaymanager and pacman
just goes 🖕 during install.

so anyway. dinit only now. you want something else? read
changing-init.md, i literally copied the artix wiki tutorial.
i am not maintaining four init service groups in netinstall.yaml
for the rest of my life. this is my villain origin story.

actual changes:
- ripped out offline calamares mode (was never truly offline)
- ripped out packagechooser.conf (good fucking riddance)
- added packagechooser_dm.conf so you can at least pick your DM
- added BYODE offline installer (bare system + btrfs + snapper,
  no DE, you pacman -Sy plasma-meta yourself)
- added yay + snapper + btrfs-progs to rootfs
- shoved Init Services + DM groups into netinstall.yaml (dinit
  only, obviously)
- updated every markdown file that mentioned another init like
  they were cursed (they were)
- wrote changing-init.md so i can just paste the link next time
  someone asks
- X-KDE-IsAdminApplication=true so KDE stops acting like
  calamares is a virus (its not, its just desperate)
2026-07-16 21:55:05 +02:00

4.3 KiB

title, layout, parent, nav_order
title layout parent nav_order
OpenRC default Init Systems 1

OpenRC

OpenRC is a traditional init system used by Gentoo, Artix Linux, Devuan, Alpine Linux, and other non-systemd distros. It's proven, well-maintained, and about as simple as an init system can get while still being feature-rich.

Note: Earlier Antergos NeXT builds shipped OpenRC as an install-time option but it had issues with service enabling on installed systems. If you want to use OpenRC on Antergos NeXT, see Changing init for manual setup instructions.

systemd vs OpenRC at a glance

systemd OpenRC
Philosophy "One tool to rule them all" "Do one thing well (Unix way)"
Logs journalctl (binary logs) Plain text files in /var/log/
Service mgmt systemctl start/stop/enable rc-service start/stop, rc-update add/del
Dependency Parallel + automatic Manual or explicit need/use/before/after
Config files .service units (INI-like) Shell scripts in /etc/init.d/
Size ~80+ binaries, 500k+ lines ~15 binaries, ~30k lines
Scope PID 1 + logind + resolved + timedated + networkd + ... Just PID 1

OpenRC is used by Gentoo, Artix Linux, Devuan, Alpine Linux, and other non-systemd distros. It's not as mainstream as systemd, but it's proven and well-maintained.

What changes for you as a user?

Service management

Task systemd OpenRC
Start a service sudo systemctl start sshd sudo rc-service sshd start
Stop a service sudo systemctl stop sshd sudo rc-service sshd stop
Enable at boot sudo systemctl enable sshd sudo rc-update add sshd
Disable at boot sudo systemctl disable sshd sudo rc-update del sshd
Check status systemctl status sshd rc-service sshd status
List enabled systemctl list-unit-files --enabled rc-update show
View logs journalctl -u sshd less /var/log/messages

Key commands

# List all services with their runlevel
rc-status

# List enabled services
rc-update show

# Add a service to a runlevel
rc-update add <service> <runlevel>

# Remove a service
rc-update del <service> <runlevel>

# Start/stop/restart a service
rc-service <service> start
rc-service <service> stop
rc-service <service> restart

Runlevels in OpenRC work like directories under /etc/runlevels/:

/etc/runlevels/
├── boot       # Low-level system services (filesystems, udev, etc.)
├── sysinit    # System initialization (hwclock, hostname, etc.)
├── default    # Normal boot services (NetworkManager, sshd, etc.)
└── shutdown   # Shutdown services

Why did Antergos NeXT switch?

Three reasons:

  1. systemd grew beyond an init system — it now owns logind, resolved, timedated, networkd, homed, and more. It's no longer just PID 1. It's a full OS management suite with a scope that keeps expanding.

  2. systemd dropped SysV compatibility — version 260 (March 2026) removed systemd-sysv-generator, rc-local.service, and all legacy compatibility code. If your distro isn't 100% systemd-native, it breaks.

  3. systemd's age verification PR#40954 (merged Mar 2026) added birthDate fields to userdb JSON for age verification compliance. Optional today, precedent tomorrow. We don't want our OS to ask for your age.

OpenRC doesn't do any of that. It starts services and gets out of the way.

Will things break?

Probably not. Most desktop software doesn't care about the init system. Browsers, editors, games, media players — they all work the same.

Things that do care about systemd and won't work:

  • systemctl, journalctl, loginctl, timedatectl — obviously
  • GNOME (it dropped non-systemd support)
  • Any .service file you try to run directly (they're systemd-native)

But everything you actually use day-to-day? Works fine. And if you need to check logs, they're in /var/log/messages — plain text, no journalctl required.

Learning more