При управлении сервером на Linux — важно уметь работать с фоновыми службами (демонами), такими как nginx
, mysql
, ssh
, fail2ban
и другими.
Иногда необходимо перезапустить сервис после изменения конфигурации, обновления или устранения ошибок.
В этой статье разберём:
- как перезапускать сервисы с помощью systemctl
и service
,
- как проверить их статус,
- что делать, если перезапуск не работает,
- примеры типичных команд для популярных служб.
Современные дистрибутивы Linux (Ubuntu 16.04+, Debian 8+, CentOS 7+, AlmaLinux, Fedora) используют systemd — систему инициализации и управления сервисами.
Основная команда — systemctl
.
Команда service
— это более старый интерфейс, который всё ещё работает во многих системах ради совместимости.
ps -p 1 -o comm=
Если вывод: systemd
, значит вы используете современную систему управления сервисами.
Основная команда:
sudo systemctl restart <имя_сервиса>
Примеры:
sudo systemctl restart nginx
sudo systemctl restart mysql
sudo systemctl restart apache2
Это полностью останавливает и запускает сервис заново.
Команда | Описание |
---|---|
systemctl start <служба> | Запустить службу |
systemctl stop <служба> | Остановить службу |
systemctl restart <служба> | Перезапустить службу |
systemctl reload <служба> | Перезагрузить конфигурацию (без остановки) |
systemctl status <служба> | Посмотреть статус службы |
systemctl enable <служба> | Запускать службу при старте системы |
systemctl disable <служба> | Отключить автозапуск |
Пример проверки статуса:
sudo systemctl status nginx
Подходит для старых систем или для совместимости:
sudo service <имя_сервиса> restart
Примеры:
sudo service nginx restart
sudo service ssh restart
В новых системах service
обычно перенаправляет к systemctl
.
systemctl list-units --type=service
systemctl | grep nginx
sudo systemctl status <служба>
Часто показывает ошибки конфигурации или журнал.
journalctl -u <служба> --no-pager
nginx
:
sudo nginx -t
sudo nginx -t
sudo systemctl reload nginx
sudo systemctl restart mysql
sudo systemctl restart ssh
sudo systemctl restart docker
При настройке на сервере может быть удобно создать алиас в .bashrc
:
alias restartnginx='sudo nginx -t && sudo systemctl reload nginx'
Перезапуск сервисов — базовая, но критически важная задача при администрировании Linux-сервера.
Команды systemctl
и service
позволяют управлять службами быстро и безопасно.
Важно проверять конфигурации до перезапуска и следить за логами при ошибках.
Если вы арендуете VDS, настройка автоматического мониторинга и управление сервисами через systemctl
— это не только удобство, но и гарантия стабильной работы вашего проекта.