Управление службами в Linux: команды systemctl для начинающих
Управление демонами и службами в Linux
Когда веб-сайт перестает отвечать, база данных не принимает подключения или завис почтовый сервер, администратору необходимо проверить статус службы и выполнить ее перезапуск. Главный инструмент для управления всеми процессами в Linux — утилита systemctl.
Базовые команды управления службами (Шпаргалка)
Вместо nginx подставьте имя вашей службы (например: mysql, apache2, docker, php8.2-fpm, ssh).
- Проверить статус службы:
Зеленый статусsudo systemctl status nginxactive (running)означает штатную работу. Красныйfailedилиdeadуказывает на сбой. - Перезапустить службу (жесткий перезапуск):
sudo systemctl restart nginx - Мягкая перезагрузка без обрыва активных соединений (Reload):
sudo systemctl reload nginx - Остановить работающую службу:
sudo systemctl stop nginx - Запустить остановленную службу:
sudo systemctl start nginx - Включить / Отключить автозапуск при старте сервера:
# Включить автозагрузку: sudo systemctl enable nginx # Отключить автозагрузку: sudo systemctl disable nginx
Что делать, если служба зависла на команде stop/restart? Нажмите Ctrl + C для выхода из зависшей команды, найдите зависший PID процесса через ps aux | grep имя_службы и завершите его принудительно: sudo kill -9 PID.
Частые вопросы (FAQ)
В чем разница между restart и reload в systemctl?
Restart полностью убивает процесс и запускает его с нуля (на долю секунды соединение обрывается). Reload только перечитывает конфигурационные файлы на лету без остановки обработки клиентов.
Как посмотреть список всех упавших служб в системе?
Выполните команду systemctl --failed. Она выведет список всех сервисов, которые завершились аварийно.
Как выйти из экрана просмотра systemctl status?
Нажмите на клавиатуре латинскую клавишу q.
Почему при вводе команды systemctl reload сервис пишет unsupported?
Не все программы поддерживают мягкую перезагрузку без перезапуска процесса. В таком случае необходимо использовать systemctl restart.