Disabling systemd in Debian 9 and 10


Warning: Some desktop environments and window managers require systemd to work. If yours suffers from this bug, you won't be able to remove systemd unless you change to another. The author uses and recommends the cwm window manager.

Systemd can be disabled in Debian 9 and 10 by installing sysvinit-core:
apt-get install sysvinit-core

A message from APT may appear, saying the installation has not completed. This is normal. Reboot to complete the installation, after which systemd can be removed:
apt-get remove --purge --autoremove systemd

To make sure systemd doesn't get re-installed in future updates, apt-pinning can be used.
Create the file /etc/apt/preferences.d/systemd which needs to contain the following lines:
Package: systemd
Pin: release
Pin-Priority: -1

Those of a more paranoid disposition may prefer the following:
Package: *systemd*
Pin: release
Pin-Priority: -1

That will ensure that no package with 'systemd' in the name will get installed, but that includes libsystemd0 which is still required for compatibility with packages that expect systemd to be present. If libsystemd0 needs to be upgraded at any point you'll have to change that temporarily to allow it.

Configuring X

In Debian 9 only root will be able to start X by default when using sysvinit. The workaround is to install the xserver-xorg-legacy package, which sets up a setuid root wrapper allowing non-root users to start X:
apt-get install xserver-xorg-legacy

It may be necessary to add the following line to /etc/X11/Xwrapper.config:

The 'startx' command should now work for normal users.

Make sure the user is added to the video group or graphics direct rendering (needed for acceleration) will fail due to lack of permission.

Note that dbus is not needed to run X without systemd.

Index               Contact

Last updated November 11 2019