web-dev-qa-db-fra.com

Impossible d'arrêter le service nginx

Il m'a fallu un certain temps pour le savoir, mais à la suite d'une récente mise à jour, je ne peux pas arrêter Nginx sur aucun de mes serveurs Ubuntu 12.04 ou Ubuntu 14.04.

Je lance Sudo service nginx stop, et je reçois nginx start/running, process 16178.

J'essaie encore Sudo service nginx stop et j'obtiens nginx start/running, process 16206.

Notez comment le numéro de processus change.

Dans /var/log/syslog je peux voir pourquoi:

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

Nginx est réapparu chaque fois que je lance Sudo service nginx stop. Il ne s'arrête jamais complètement.

J'ai essayé de mettre à jour Ubuntu, je l'ai redémarré et j'ai réinstallé mes serveurs sur des images de test locales (j'utilise Puppet). Rien ne fait de différence. J'ai aussi essayé de chercher des bugs liés à cela sans succès.

Est-ce que quelqu'un sait comment je peux résoudre ce problème? J'aimerais pouvoir exécuter Sudo service nginx stop et ainsi arrêter tous les processus nginx.

4
href_

Il semble que votre serveur Nginx soit géré par un processus initial.

Recherchez dans le dossier/etc/init et vérifiez s’il n’ya pas de fichier gérant nginx.

grep -r nginx /etc/init

Editez ensuite ce fichier et supprimez l’option respawn dans le fichier de configuration.

3
aklmie

Vous pouvez arrêter le processus nginx à l'aide de Sudo nginx -s quit

Vous pouvez voir dans /etc/init/nginx

1
Kaung Yar Zar

J'ai eu le même problème quand je voulais mettre à jour mes certificats avec un serveur Web temporaire par certbot: chaque fois, j'ai arrêté nginx avec

service stop nginx

après quelques secondes, il a redémarré automatiquement. Ainsi, lorsqu'il s'est agi de servir la preuve de mon domaine certbot, le port 443 était déjà utilisé par le nginx respectif.

J'étais vraiment pressé de résoudre ce problème, alors j'ai commencé une solution de contournement vraiment sale, mais cela a fonctionné:

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

Maintenant, je pouvais actualiser mes certificats et découvrir plus tard comment arrêter nginx définitivement de manière plus correcte;)

0
rubo77