Ответ
systemctl — это основная утилита командной строки для управления системой и службами в дистрибутивах Linux, использующих init-систему systemd. Она позволяет контролировать состояние, конфигурацию и жизненный цикл системных служб (сервисов), а также других единиц управления (units), таких как mount points, sockets или timers.
Основные команды для управления сервисами:
# Запуск, остановка, перезапуск
systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
# Проверка статуса
systemctl status nginx.service
# Включение/отключение автозапуска при загрузке системы
systemctl enable nginx.service
systemctl disable nginx.service
# Проверка, включен ли автозапуск
systemctl is-enabled nginx.service
Практическое применение в DevOps:
- Развертывание приложений: После копирования новых версий сервисных файлов (
.service) необходимо выполнитьsystemctl daemon-reload, чтобы systemd узнал об изменениях, а затем перезапустить сервис. - Мониторинг и отладка: Команда
systemctl statusпоказывает не только состояние, но и последние строки журнала (logs) сервиса, что критично для быстрой диагностики сбоев. - Управление зависимостями: В файлах
.serviceможно декларативно описывать зависимости (After=, Requires=), аsystemctlобеспечивает их корректный порядок запуска. - Просмотр всех юнитов:
systemctl list-units --type=service --allвыводит полный список сервисов.