An init system must be an init system
Since the adoption of systemd by Arch Linux I've encountered many problems with my systems, ranging from lost temporary files which systemd deemed proper to delete without asking (changing default behaviour on a whim), to total, consistent boot lockups because systemd-210+ couldn't mount an empty
/usr/local partition (whereas systemd-208 could; go figure).
As each "upgrade" of systemd aggressively assimilated more and more key system components into itself, it became apparent that the only way to avoid this single most critical point of failure was to stay as far away from it as possible.
Reading the list of those system components is daunting: login, pam, getty, syslog, udev, cryptsetup, cron, at, dbus, acpi, cgroups, gnome-session, autofs, tcpwrappers, audit, chroot, mount
... How about defaulting KillUserProcesses to yes
, which effectively kills all backgrounded user processes (tmux and screen included) on logout?
It would seem that the only thing still missing from systemd is a decent init system.
The solution: Remove systemd, install OpenRC
"Coincidentally", there were others before me who had had similar concerns and had prepared the way. Their efforts and experience is summarised in these pages. Sincere, warm thanks go to artoo
who have done most of the work in Archland and, of course, the Gentoo developers
who have made this possible in the first place.
I administer a handsome lot of linux boxes and I've performed the migration procedure (successfully and without exception) in all of them, even remote ones.
The procedure is explained in Installation
; however you might want to read about OpenRC in the links below:
OpenRC in the Manjaro wiki
OpenRC in the Gentoo wiki
OpenRC and eudev packages in Sourceforge.net
OpenRC on Arch Linux
Using OpenRC on Arch / Archbang / Manjaro Linux
OpenRC in the Archlinux wiki
The Archlinux OpenRC wiki page doesn't contain information on the migration process anymore; it breaks down things in several different articles and provides links to other resources not always Arch-specific, which unnecessarily obfuscates things, not to mention the omnipresent warning to not remove systemd. The migration procedure described here instead is reliable and as plain and simple as possible, explaining what is to be done and why in clearly defined steps, despite what a FUD-spreading Arch Wiki admin says against it in his every other post. This is proven time and again on many different boxes and setups.
Other Linux distros: Escape from systemd
Here we focus on removing systemd from Arch Linux and derivatives: Manjaro, ArchBang, Antergos etc. For information about removing systemd from other Linux distributions (namely Debian and deb/apt-get based ones like Ubuntu and Mint) you can visit the Without systemd wiki.
Additionally, a list of Operating systems without systemd in the default installation might be of special interest as, ultimately, the future of the Linux init systems will be determined by the popularity (or lack thereof) of systemd-free distros like Gentoo, Slackware, PCLinuxOS, Void Linux and Devuan.
Non-Linux OSes are also a viable (if somewhat last-resort) option, especially if the situation for non-systemd setups significantly worsens; FreeBSD and DragonFlyBSD are totally worth taking a shot at.
It is my Linux of choice since I've had it with systemd. All my new linux installations are of this flavour, as I've become too accustomed to pacman (unless someday it depends on systemd-pacmand or something).
A new alternative to the official Arch installation ISO is now available, along with its repositories, hosted on the same location as the original systemd-free repos. This will install a fresh OpenRC Arch system, which can be afterwards customized as needed. Read the installation instructions at the sourceforge page and profit.
Is a completely systemd-free Arch derivative. By its author's words, "Obarun is not a distribution, is not Archlinux. Obarun is based on archlinux but with several changes." It uses runit.
You may contact us at Freenode, channels #openrc, #manjaro-openrc and #arch-openrc.