Не удается остановить службу nginx

Мне потребовалось некоторое время, чтобы выяснить это, но с момента недавнего обновления я не могу остановить Nginx ни на одном из моих серверов Ubuntu 12.04 или Ubuntu 14.04.

Я бегу sudo service nginx stop, и я получаю nginx start/running, process 16178.

Я снова пытаюсь sudo service nginx stop, и я получаю nginx start/running, process 16206.

Обратите внимание, как меняется номер процесса.

В /var/log/syslog я вижу, почему:

Jun 11 11:57:51 kernel: [2318556.994508] init: nginx main process ended, respawning.

Nginx появляется заново каждый раз, когда я бегу sudo service nginx stop. Это никогда не приходит к полной остановке.

Я попытался обновить Ubuntu, перезагрузился и переустановил свои серверы на локальных тестовых образах (я использую Puppet). Ничто не имеет значения. Я также безуспешно пытался найти ошибки, связанные с этим.

Кто-нибудь знает, как я могу решить эту проблему? Я хотел бы иметь возможность запустить sudo service nginx stop и в результате остановить все процессы nginx.

4
задан 11 June 2015 в 15:10

3 ответа

Это кажется Вами, nginx сервер является дескриптором новомодным процессом.

Взгляд в/etc/init папке и проверка, если нет файла, который обрабатывает nginx.

grep -r nginx /etc/init

Затем редактирование этот файл, и удаляют respawn опция в файле конфигурации.

0
ответ дан 12 June 2015 в 01:10
  • 1
    Это - достойный ответ, таким образом, +1, но это стоит упомянуть, оборотная сторона к использованию установки USB является скоростью. Это просто won' t с такой скоростью, как выполнить его от жесткого диска, это может побеспокоить некоторых, но это не слишком плохо при необходимости в мобильности. – Mark Kirby 9 September 2016 в 10:01

Можно остановить процесс nginx с помощью sudo nginx -s quit

, Вы видите в /etc/init/nginx

0
ответ дан 17 April 2019 в 22:23

У меня была та же проблема, когда я хотел обновить свои letsencrypt сертификаты с временным веб-сервером certbot: каждый раз я остановил nginx с

service stop nginx

после нескольких секунд, которые он перезапустил автоматически поэтому, когда он пришел к обслуживанию доказательства моего домена certbot, порт 443 уже использовался повторно порожденным nginx.

я действительно спешил фиксировать это, таким образом, я запустил действительно грязное обходное решение, но оно работало:

while true; do service nginx stop; sleep 2; done

Теперь я смог обновить свои сертификаты и узнать позже, как остановить nginx окончательно более корректным способом ;)

0
ответ дан 17 April 2019 в 22:23

Другие вопросы по тегам:

Похожие вопросы: