Это старая версия документа!
# Управление службами через 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 ```
