Управление сервисами systemd через systemctl: команды и примеры
1. Основные команды для управления сервисами
Используем команду systemctl для управления сервисами (демонами) в systemd.
Запуск, остановка и перезапуск сервиса
sudo systemctl start <service> # Запуск сервиса
sudo systemctl stop <service> # Остановка сервиса
sudo systemctl restart <service> # Перезапуск сервиса
sudo systemctl reload <service> # Перезагрузка конфигурации (без остановки)
Включение и отключение автозапуска
sudo systemctl enable <service> # Включить автозапуск сервиса
sudo systemctl disable <service> # Отключить автозапуск сервиса
sudo systemctl is-enabled <service> # Проверить статус автозапуска
Проверка состояния сервиса
systemctl status <service> # Проверить текущее состояние сервиса
journalctl -u <service> # Просмотреть логи сервиса
Проверка запущенных сервисов
systemctl list-units --type=service --state=running # Вывести запущенные сервисы
systemctl list-units --type=service # Все загруженные сервисы
2. Работа с юнитами systemd
Каждый сервис в systemd представлен в виде юнита (.service).
Перезапуск systemd и перечитывание конфигурации
sudo systemctl daemon-reexec # Перезапуск systemd без перезапуска сервисов
sudo systemctl daemon-reload # Обновить конфигурацию systemd после изменения юнитов
Редактирование юнитов сервисов
sudo systemctl edit <service> # Изменить конфигурацию юнита (создает override)
sudo systemctl cat <service> # Просмотреть конфигурацию юнита
Удаление override-конфигурации
sudo systemctl revert <service>
3. Дополнительные команды
Маскировка и размаскировка сервиса
sudo systemctl mask <service> # Полностью отключить сервис (даже если включен)
sudo systemctl unmask <service> # Разрешить сервис (после mask)
Выключение и перезагрузка системы через systemd
sudo systemctl reboot # Перезагрузка системы
sudo systemctl poweroff # Выключение системы
sudo systemctl suspend # Усыпление системы
sudo systemctl halt # Остановка системы без выключения питания
4. Примеры работы
Запуск и настройка сервиса Nginx
sudo systemctl start nginx # Запускаем сервис
sudo systemctl enable nginx # Включаем автозапуск
systemctl status nginx # Проверяем статус
journalctl -u nginx --no-pager # Просматриваем логи
Остановка и отключение сервиса Apache
sudo systemctl stop apache2 # Остановка сервиса
sudo systemctl disable apache2 # Отключение автозапуска
sudo systemctl mask apache2 # Полностью блокируем его запуск
5. Полезные флаги systemctl
Флаг Описание
--no-pager Вывод без постраничного просмотра
--failed Показывает только сбойные юниты
--type=service Фильтр по типу "service"
--all Показывает все юниты, включая неактивные
👉 @i_odmin