Содержание
Управление службами через SYSTEMCTL в Linux
Systemctl
Systemd — система инициализации служб.
Systemctl — утилита для управления службами
Состояния службы
| Состояние | Значение |
|---|---|
| loaded | файл конфигурации юнита был обработан; |
| active (running) | служба запущена с одним или несколькими выполняющимися процессами; |
| active (exited) | единовременная настройка завершена успешно; |
| active (waiting) | служба запущена, но ожидает событие; |
| inactive | служба не запущена; |
| enabled | служба будет запускаться во время начальной загрузки системы; |
| disabled | служба не будет запускаться во время начальной загрузки системы; |
| static | служба не может быть включена, но может быть автоматически запущен включенным юнитом. |
Управление службами
| Команда | Описание |
|---|---|
systemctl status <service-name> | отображение состояния службы |
systemctl status rsyslog.service -l <service-name> | отображение подробного состояния службы |
systemctl stop <service-name> | остановка службы |
systemctl start <service-name> | запуск службы |
systemctl restart <service-name> | перезапуск службы |
systemctl reload <service-name> | перезагрузка конфигурации службы |
systemctl daemon-reload | перезагрузка конфигурации всех служб |
systemctl enable <service-name> | включение автозапуска |
systemctl disable <service-name> | выключение автозапуска |
systemctl mask <service-name> | отключение возможности запуска службы |
systemctl unmask <service-name> | включение возможности запуска службы |
systemctl enable --now <service-name> | запуск службы и включение автозапуска |
systemctl disable --now <service-name> | остановка службы и включение автозапуска |
Список служб
| Команда | Описание |
|---|---|
systemctl | без параметров выводит состояние всех юнитов |
systemctl --type=service | вывод состояния юнитов указанного типа |
systemctl list-units | список юнитов, которые добавлены в systemd |
systemctl list-units --type=service | вывод списка всех загружаемых служб |
systemctl list-units --type=service --all | вывод списка всех служб |
systemctl list-unit-files --type=service | вывод списка служб и их состояние (кратко) |
systemctl is-active <service-name> | проверка, активна ли служба |
systemctl is-enabled <service-name> | проверка, включен ли автозапуск |
systemctl --failed --type=service | вывод списка только отказавших служб |
systemctl list-dependencies <service-name> | вывод списка зависимостей службы |
systemctl list-dependencies <service-name> --reverse | вывод списка служб, которые зависят от указанной |
Target
Target группирует другие юниты и может запускать и останавливать их все вместе.
При запуске системы используется graphical.target (для загрузки системы с графическим интерфейсом) или multi-user.target (для загрузки системы без графического интерфейса). Символическая ссылка /etc/systemd/system/default.target указывает на нужный target.
Для проверки текущего default.target используется команда:
systemctl list-dependencies default.target
Вывод таргета по умолчанию:
systemctl get-default
эта команда читает символическую ссылку, расположенную в /etc/systemd/system/default.target, и отображает результат.
Смена текущего target:
systemctl isolate <target-name>.target
Создание юнита
Файлы юнитов содержатся в каталоге
/etc/systemd/system
Для создания юнита нужно создать файл, например
touch test.service
и записать в файл следующее:
[Unit] Description=1c-server [Service] ExecStart=/etc/init.d/srv1cv83 [Install] WantedBy=multi-user.target
