Linux Labs

Пакеты, службы, журналы / Ступень 7 из 13

Диагностика отказавшей службы

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 5 из 8 · на машине · 5 мин

Ошибка в настройках программы

Бывает, что systemd запускает программу, а та отказывается работать из-за своих настроек. В этом шаге — как это выглядит у nginx.

Перед запуском nginx его юнит выполняет проверку конфигурации — строка ExecStartPre с nginx -t. Если в конфигурации ошибка, проверка вернёт код 1/FAILURE, и nginx не запустится. Ту же проверку можно выполнить вручную:

bash
sudo nginx -t

При ошибке nginx -t печатает файл, номер строки и что в ней не так. Исправленная конфигурация — ещё не работающий сайт: после правки nginx нужно запустить, а работу сайта проверить запросом. Если nginx уже работает, правку применяют sudo systemctl reload nginx: при ошибке в конфигурации reload откажет с Job for nginx.service failed, а nginx продолжит работать со старой.

Запрос к сайту:

bash
curl -I http://localhost/

Первая строка ответа HTTP/1.1 200 OK значит, что сайт отвечает. active в статусе говорит о процессе, а ответ сайта — о том, что служба делает свою работу.

Проверь себя 1 вопрос

После правки конфигурации sudo nginx -t печатает syntax is ok и test is successful, а curl -I http://localhost/ — Failed to connect to localhost port 80. Что сделаешь?

  • daemon-reload перечитывает файлы юнитов, а правили конфигурацию nginx. Сам nginx от этого не запустится.

  • nginx -t проверил конфигурацию целиком, и она исправна. Сайт не отвечает, потому что его некому обслуживать: проверь systemctl is-active nginx.

  • enable без --now готовит запуск при загрузке, а сайт нужен сейчас: nginx должен работать.

Исправная конфигурация ещё не работающий сайт: Failed to connect значит, что порт 80 никто не слушает. После sudo systemctl start nginx повтори curl -I и жди HTTP/1.1 200 OK.

Главное в шаге

  • Ошибку в настройках программы показывает её собственная проверка: у nginx — sudo nginx -t с файлом и номером строки.
  • Восстановление подтверждает полезный результат — например, ответ 200 OK на curl -I.
Ubuntu 24.04
Загрузка…