Замена sysvinit на systemd в Debian

Устанавливаем systemd:

# apt-get install systemd

Добавляем в /etc/default/grub опцию для запуска /lib/systemd/systemd вместо /sbin/init:

GRUB_CMDLINE_LINUX_DEFAULT="init=/lib/systemd/systemd"

Обновляем конфигурацию загрузчика GRUB, так чтобы в неё попали только что настроенные нами опции загрузки ядра Linux:

# update-grub

Перезагружаем систему:

# reboot

Смотрим на дерево процессов:

# ps -eHo pid,command

Если дерево растёт от процесса с именем systemd и идентификатором 1, то удаляем пакет sysvinit и устанавливаем пакет systemd-sysv:

# apt-get remove sysvinit
# apt-get install systemd-sysv

При попытке удаления sysvinit нужно будет не просто нажать Enter или набрать Yes, а чётко выразить своё намерение набором требуемой подтверждающей фразы.

Пакет systemd-sysv содержит в себе ссылку с именем /sbin/init, указывающую на /lib/systemd/systemd, поэтому из конфигруации загрузчика можно убрать добавленную опцию и вернуть файл /etc/default/grub к прежнему виду:

GRUB_CMDLINE_LINUX_DEFAULT=""

Теперь можно перезагрузить систему ещё раз:

# reboot

На этот раз система должна загрузиться под управлением systemd штатным образом.