Как работать с systemd

Спасибо, SUSEana за шпаргалки, а то не так просто перепривыкнуть.

Управление системными службами

Управление системными службами (они же сервисы или демоны) включает их запуск, остановку, перезапуск и тому подобные манипуляции. В рамках systemd все они выполняются с помощью команды systemctl, требующей прав root’а. Она требует указания субкоманды и её аргумента — имени управляемой службы.

Запуск службы осуществляется с помощью субкоманды start. Например, для запуска службы консольной мыши нужно выполнить

1
# systemctl start gpm.service

А прекратить её выполнение — субкомандой stop:

1
# systemctl stop gpm.service

Для перезапуска службы используется субкоманда restart:

1
# systemctl restart gpm.service

В то же время для некоторых служб иногда достаточно перечитать их конфигурационный файл, без перезапуска процесса; в этом случае применяется субкоманда reload. Например, при изменении консольной раскладки клавиатуры или шрифта вывода в консоли можно ограничиться командой

1
# systemctl reload kbd.service

Действие субкоманд start и stop ограничивается текущим сеансом. Если требуется запуск или остановка некоей службы после рестарта системы, следует использовать субкоманды enable и disable, соответственно. Например, команда

1
# systemctl enable gpm.service

сделает доступной службу консольной мыши после перезагрузки системы, а

1
# systemctl disable gpm.service

напротив, отключит её в следующем сеансе.

Таким образом, управление службами через systemd осуществляется почти также, как и при “старом режиме”, когда использовалась команда service. Разница только в синтаксисе (субкоманда нынче указывается не в конце конструкции, а перед аргументом, что отражает прогрессивность НЭПа) и в том, что имя службы теперь сопровождается суффиксом *.service — для тренировки пальцев. Хотя, справедливости ради, надо отметить, что в zsh (и, вероятно, в bash) для аргументов команды systemctl работает автодополнение.

И в заключение добавлю, что пока использование команды service для управления службами также не запрещается.
Источник: http://suseana.ru/?p=841

Цели вместо runlevels

В менеджере инициализации systemd вместо уровней запуска (runlevels), которые Linux унаследовал от SysV первозданного UNIX’а, используются так называемые цели (targets). Подобно уровням запуска, они объединяют в себе наборы стартовых служб некоторого назначения. Однако, в отличие от runlevels, которых, как известно, существует всего семь, целей в systemd определено великое множество — полный их список можно просмотреть командой

1
$ ls /lib/systemd/system/*.target

Из всего этого богачества в openSUSE по умолчанию задействованы следующие цели:

poweroff.target — выключение системы (аналог runlevel 0);
reboot.target — перезагрузка системы (аналог runlevel 6);
rescue.target — спасательный режим (аналог single user mode, runlevel 1);
multi-user.target — консольный многопользовательский режим с поддержкой сети (аналог runlevel 3);
graphical.target — запуск в графическом режиме (аналог runlevel 5).

Переключаться между целями (то есть соответствующими режимами) можно с помощью всё той же команды systemctl с указанием субкоманды isolate и аргумента — имени цели. Например, команда

1
# systemctl isolate rescue.target

переведёт систему в однопользовательский режим с автоматическим закрытием Иксового сеанас и всех запущенных в нём приложений. Вернуться к нормальной работе можно, как легко догадаться, командой

1
# systemctl isolate graphical.target

Впрочем, пока не возбраняется и использование команды telinit с указанием уровня запуска как аргумента. Например, того же результата — перехода в однопользовательский режим — можно добиться и так:

1
# telinit 1

А для возврата взад можно использовать и

1
# telinit 5

Здесь нужно только помнить, что по умолчанию аналог runlevel 2 (многопользовательский режим без поддержки сети) в openSUSE не задействован. Это можно изменить, переопределив символическую ссылку /lib/systemd/system/runlevel2.target — как именно, оставляю для изучения заинтересованным лицам.

Источник: http://suseana.ru/?p=842

Цель по умолчанию

Для определения цели при старте системы в systemd служит специальная символическая ссылка — /lib/systemd/system/default.target. По умолчанию она указывает на /lib/systemd/system/graphical.target, благодаря чему openSUSE запускается в графическом режиме (аналог runlevel 5). Если это почему-либо не устраивает, стартовую цель легко изменить, переопределив указанную ссылку. Например, после команды

1
# ln -sf /lib/systemd/system/multi-user.target /lib/systemd/system/default.target

система будет стартовать в консольном многопользовательском режиме (аналог runlevel 3). Обращаю внимание на опцию -f, обеспечивающую принудительное переопределение символической ссылки — без неё последует сообщение об ошибке.

В openSUSE пока сохраняется и файл /etc/inittab, описывающий уровни запуска в терминах SysV. Однако его редактирование — например, замена строки

id:5:initdefault:

на

id:3:initdefault:

не даст никакого эффекта: изменить режим запуска по умолчанию можно только указанным выше способом.



Запись опубликована в рубрике Софт с метками , . Добавьте в закладки постоянную ссылку.


Поделиться с друзьями




Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *