Спасибо, 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:
не даст никакого эффекта: изменить режим запуска по умолчанию можно только указанным выше способом.