Что такое systemctl?

«Что такое systemctl?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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 выводит полный список сервисов.