Table of Contents
systemctl — основной инструмент для управления сервисами, монтированием, таймерами и юнитами в системе с systemd.
Позволяет запускать, останавливать, перезапускать сервисы, управлять загрузкой, проверять статусы и анализировать зависимости.
📝 Топ‑20 полезных флагов systemctl#
start <unit>— запустить сервис.stop <unit>— остановить сервис.restart <unit>— перезапустить сервис.reload <unit>— перезагрузить конфигурацию без остановки.enable <unit>— включить автозапуск при старте.disable <unit>— отключить автозапуск.status <unit>— показать состояние сервиса.is-active <unit>— проверка, запущен ли сервис.is-enabled <unit>— проверка, включён ли автозапуск.list-units— список активных юнитов.list-unit-files— список всех юнитов и их состояния.show <unit>— вывести параметры юнита.cat <unit>— показать файл юнита.edit <unit>— редактировать юнит через override.daemon-reload— перезагрузить systemd после изменений.list-timers— список активных таймеров.mask <unit>— полностью заблокировать запуск юнита.unmask <unit>— разблокировать юнит.list-dependencies <unit>— показать зависимости юнита.rescue/emergency— перевести систему в аварийный режим.
🚀 Айсберг команд systemctl — от базового к гуру#
🟢 Уровень 1 — База (разогрев)#
systemctl status
- Показать общую информацию о системе
systemctl status ssh
- Проверить статус SSH-сервиса
systemctl start ssh
- Запустить SSH
systemctl stop ssh
- Остановить SSH
systemctl restart ssh
- Перезапустить SSH
🟡 Уровень 2 — Управление автозапуском#
systemctl enable nginx
- Включить автозапуск Nginx
systemctl disable nginx
- Отключить автозапуск
systemctl is-enabled nginx
- Проверить, включен ли автозапуск
systemctl enable --now docker
- Включить автозапуск и сразу запустить
systemctl disable --now docker
- Выключить автозапуск и остановить сервис
🟠 Уровень 3 — Работа с логами и статусами#
systemctl status nginx
- Статус и последние логи Nginx
systemctl show ssh
- Все параметры юнита SSH
systemctl cat docker
- Показать конфигурацию юнита Docker
systemctl list-units --type=service
- Список активных сервисов
systemctl list-unit-files --type=service
- Список всех сервисов и их состояния
🔵 Уровень 4 — Таймеры и планировщики#
systemctl list-timers
- Список активных таймеров
systemctl status apt-daily.timer
- Проверить конкретный таймер
systemctl stop apt-daily.timer
- Остановить таймер
systemctl disable apt-daily.timer
- Отключить таймер
systemctl start my-backup.timer
- Запустить кастомный таймер
🟣 Уровень 5 — Диагностика и зависимость сервисов#
systemctl list-dependencies nginx
- Показать зависимости Nginx
systemctl list-dependencies --reverse nginx
- Показать, кто зависит от Nginx
systemctl show nginx | grep ExecStart
- Узнать, какую команду запускает юнит
systemctl is-active docker
- Проверить, запущен ли Docker
systemctl is-failed ssh
- Проверить, упал ли сервис
🔴 Уровень 6 — Редактирование юнитов и advanced override#
sudo systemctl edit nginx
- Создать override-файл для Nginx
sudo systemctl edit --full nginx
- Полностью редактировать юнит
sudo systemctl daemon-reload
- Перечитать конфиги systemd
sudo systemctl restart nginx
- Применить изменения
systemctl revert nginx
- Удалить кастомные override-настройки
🟤 Уровень 7 — Гуру‑режим#
systemctl mask NetworkManager
- Полностью заблокировать запуск NetworkManager
systemctl unmask NetworkManager
- Разблокировать его
systemctl rescue
- Перейти в rescue mode
systemctl emergency
- Перейти в emergency mode
journalctl -u nginx -f
- Смотреть логи сервиса в реальном времени
🧩 Бонус — практические сценарии#
Перезапустить все упавшие сервисы:
systemctl list-units --state=failed
sudo systemctl restart <unit>
Перечитать конфиги systemd после обновлений:
sudo systemctl daemon-reload
Включить автоматический рестарт сервиса:
sudo systemctl edit nginx
[Service]
Restart=always
Смотреть активные сервисы в реальном времени:
watch "systemctl list-units --type=service"
Отфильтровать только неактивные сервисы:
systemctl list-units --state=inactive