linux-labs

← Теория

Службы systemd и веб-сервер nginx

Что такое служба

Большинство постоянно работающих программ в Linux — это демоны: фоновые процессы без терминала (веб-сервер, БД, планировщик). Их жизненным циклом управляет systemd — init-система и менеджер служб (процесс с PID 1).

Единица управления systemd называется юнитом. Самый частый тип юнита — service: он описывается unit-файлом и знает, как запустить программу, от какого пользователя, что делать при падении и от чего зависит.

Управление службами: systemctl

Основной инструмент — systemctl:

systemctl status nginx     # состояние + последние строки журнала
systemctl start nginx      # запустить сейчас
systemctl stop nginx       # остановить
systemctl restart nginx    # перезапустить
systemctl enable nginx     # автозапуск при загрузке
systemctl is-active --quiet nginx && echo "работает"

Разделяй два понятия: active (работает прямо сейчас) и enabled (поднимется при загрузке). Служба может быть enabled, но не active — например, после сбоя или ручной остановки.

Веб-сервер nginx

nginx — быстрый веб-сервер и обратный прокси. Конфигурация лежит в /etc/nginx/; включённые сайты — симлинки из sites-enabled/.

Золотое правило: меняешь конфиг — сначала проверь синтаксис, потом перезагружай.

nginx -t                   # проверка конфигурации (файл + строка ошибки)
systemctl reload nginx     # применить без обрыва соединений

Самая частая поломка новичка — пропущенная ; в директиве (например, у listen). nginx -t сразу укажет файл и строку — начинай диагностику всегда с него.

Когда служба не поднимается

  1. systemctl status nginx — почему упала (код выхода, последние строки).
  2. journalctl -xeu nginx — подробный журнал службы (journalctl).
  3. Для nginx — nginx -t: чаще всего проблема в конфиге.
  4. Починил конфиг → systemctl start nginx → проверь, что active (running).

Проверяй результат по конечному состоянию, а не по набранным командам: «nginx -t проходит, служба active, сайт отвечает 200». Путей к этому несколько.

Открыть в Практике → Пройти тест →