Цель этой страницы - помочь системным администраторам разобраться, какие команды systemd заменяют привычные команды sysvinit. Более подробную информацию по systemd вы можете найти по ссылке systemd.
Обратите внимание, что команды 'service' и 'chkconfig' продолжат работать в мире systemd практически без изменений. Тем не менее в этой инструкции показано как выполнить те же действия с помощью встроенных утилит systemctl.
Сервисы и службы
Команда sysvinit | Команда systemd | Комментарий |
---|---|---|
service frobozz start | systemctl start frobozz.service | Используется для разового запуска службы. |
service frobozz stop | systemctl stop frobozz.service | Используется для разовой остановки службы. |
service frobozz restart | systemctl restart frobozz.service | Используется для разового перезапуска службы. |
service frobozz reload | systemctl reload frobozz.service | Если такая возможность поддерживается службой, перезагружает конфигурационный файл, не прерывая процесса. |
service frobozz condrestart | systemctl condrestart frobozz.service | Перезапускает службу, если она запущена. |
service frobozz status | systemctl status frobozz.service | Сообщает, запущена ли служба. |
ls /etc/rc.d/init.d/ | ls /lib/systemd/system/*.service /etc/systemd/system/*.service | Используется для получения списка служб, которые могут быть запущены или остановлены. |
chkconfig frobozz on | systemctl enable frobozz.service | Включает запуск службы после перезагрузки. |
chkconfig frobozz off | systemctl disable frobozz.service | Отключает запуск службы после перезагрузки. |
chkconfig frobozz | systemctl is-enabled frobozz.service | Используется для проверки, будет ли служба запущена после перезагрузки. |
chkconfig frobozz --list | ls /etc/systemd/system/*.wants/frobozz.service | Выдает список уровней загрузки(целей), при которых данная служба будет запущена автоматически. |
chkconfig frobozz --add | Не используется, нет аналога. |
Все вышеперечисленные команды /sbin/service и /sbin/chkconfig работают с systemd и автоматически переводятся в эквивалентные команды systemctl. Исключением является только chkconfig --list.
Уровни загрузки/цели
Systemd использует понятие целей(target), сходное по сути с уровнями загрузки, но работающее немного иначе. Каждая цель имеет название, описывающее её предназначение. Некоторые цели объединяют в себе запуск всех служб какой-то одной цели и нескольких дополнительных сервисов. Для замены уровней загрузки sysvinit были созданы специальные "цели", переключаться между которыми вы можете как и раньше используя команду telinit RUNLEVEL
. Стандартные для Fedora уровни загрузки 0, 1, 3, 5, и 6 полностью эквиваленты соответствующим целям systemd.
К сожалению, не существует простого способа реализовать пользовательские уровни 2 и 4. В качестве замены пользователь может создать новую цель /etc/systemd/system/$YOURTARGET
на основе одной из имеющихся (в качестве примера посмотрите /lib/systemd/system/graphical.target
), создать папку /etc/systemd/system/$YOURTARGET.wants
, и с помощью символических ссылок добавить все необходимые вам дополнительные сервисы в эту папку. (Символические ссылки должны указывать на файлы служб *.service, расположенные в /lib/systemd/system
).
Уровень загрузки sysvinit | Цель systemd | Комментарий |
---|---|---|
0 | runlevel0.target, poweroff.target | Выключает систему. |
1, s, single | runlevel1.target, rescue.target | Однопользовательский режим. |
2, 4 | runlevel2.target, runlevel4.target, multi-user.target | Уровни, определенные пользователем. По умолчанию эквивалентны уровню 3. |
3 | runlevel3.target, multi-user.target | Многопользовательский режим без графики. |
5 | runlevel5.target, graphical.target | Многопользовательский режим с графикой. Обычно эквивалентен запуску всех сервисов уровня 3 и графическому менеджеру входа. |
6 | runlevel6.target, reboot.target | Перезагрузка |
emergency | emergency.target | Аварийная оболочка |
Переключение уровня загрузки:
Команда sysvinit | Команда systemd | Комментарий |
---|---|---|
telinit 3 | systemctl isolate multi-user.target (OR systemctl isolate runlevel3.target OR telinit 3) | Переключиться на многопользовательский уровень. |
sed s/^id:.*:initdefault:/id:3:initdefault:/ | ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target | Установить загрузку по умолчанию на уровень 3. |