Шпаргалка по управлению сервисами и демонами (systemctl, service, init.d)
Systemd (systemctl)
systemctl — основная утилита для управления сервисами в системах с Systemd (например, Ubuntu 16+, CentOS 7+, Debian 8+).
Запуск, остановка, перезапуск сервиса
|
1 2 3 4 5 |
systemctl start <service> # Запустить сервис systemctl stop <service> # Остановить сервис systemctl restart <service> # Перезапустить сервис systemctl reload <service> # Перезагрузить конфигурацию без остановки systemctl reload-or-restart <service> # Перезапустить, если нельзя перезагрузить |
Статус сервиса
|
1 2 3 |
systemctl status <service> # Проверить статус сервиса systemctl is-active <service> # Проверить, запущен ли сервис (active/inactive) systemctl is-enabled <service> # Проверить, включен ли сервис при загрузке (enabled/disabled) |
Автозапуск при старте системы
|
1 2 3 4 |
systemctl enable <service> # Включить автозапуск systemctl disable <service> # Отключить автозапуск systemctl mask <service> # Запретить запуск сервиса systemctl unmask <service> # Разрешить запуск сервиса |
Логи сервиса
|
1 2 3 |
journalctl -u <service> # Показать логи сервиса journalctl -xe # Посмотреть детальные ошибки и события journalctl --since "30 min ago" -u <service> # Логи за последние 30 минут |
Перезагрузка Systemd
|
1 2 |
systemctl daemon-reexec # Перезапустить systemd без перезагрузки системы systemctl daemon-reload # Обновить конфигурацию сервисов |
SysV Init (service, init.d)
Для старых систем без systemd (например, CentOS 6, Debian 7) используются SysV Init и скрипты в /etc/init.d/.
Запуск, остановка, перезапуск
|
1 2 3 4 |
service <service> start # Запустить сервис service <service> stop # Остановить сервис service <service> restart # Перезапустить сервис service <service> reload # Перезагрузить конфигурацию без остановки |
Статус сервиса
|
1 |
service <service> status # Проверить статус сервиса |
Автозапуск при старте системы
|
1 2 3 |
chkconfig <service> on # Включить автозапуск chkconfig <service> off # Отключить автозапуск chkconfig --list <service> # Проверить, включен ли сервис при старте |
Ручное управление через init.d
|
1 2 3 4 |
/etc/init.d/<service> start # Запустить сервис /etc/init.d/<service> stop # Остановить сервис /etc/init.d/<service> restart # Перезапустить сервис /etc/init.d/<service> status # Проверить статус |
Upstart (service, initctl)
Использовался в Ubuntu 9.10 – 14.10.
Управление сервисами
|
1 2 3 4 5 |
service <service> start # Запустить сервис service <service> stop # Остановить сервис service <service> restart # Перезапустить сервис service <service> status # Проверить статус сервиса initctl list # Список всех сервисов |
Автозапуск
|
1 2 |
echo "manual" | sudo tee /etc/init/<service>.override # Отключить автозапуск sudo rm /etc/init/<service>.override # Включить автозапуск |
Дополнительно
Найти сервис в системе
|
1 2 |
systemctl list-units --type=service # Список всех сервисов systemctl list-unit-files | grep enabled # Все включенные сервисы |
Удаление сервиса
|
1 2 3 4 |
systemctl disable <service> systemctl stop <service> rm -f /etc/systemd/system/<service>.service systemctl daemon-reload |
Совет:
Если не знаете, какой менеджер используется в вашей системе, выполните:
|
1 |
ps --pid 1 -o comm= |
Если ответ systemd → используйте systemctl, если init → service или init.d.