J'ai émis un arrêt nginx -s et après cela, j'ai eu cette erreur en essayant de le recharger.
[erreur]: numéro PID non valide "" dans "/var/run/nginx.pid"
Ce fichier/var/run/nginx/pid est vide atm.
Que dois-je faire pour le réparer?
nginx -s reload n'est utilisé que pour indiquer à un processus nginx en cours d'exécution de recharger sa configuration. Après un arrêt, vous n'avez pas de processus nginx en cours pour envoyer un signal. Exécutez simplement nginx (éventuellement avec un chemin -c// to/config/file)
dans mon cas, j'ai résolu cela en démarrant le service.
Sudo /etc/init.d/nginx start
La commande ci-dessus démarrera le service dans Debian/Ubuntu. Il émettra une erreur s'il y a un problème (comme l'écoute d'Apache dans le même port)
Après cela, le rechargement de nginx -s fonctionnera comme un charme
Dans la dernière version (1.2.0) que j'ai téléchargée, il n'y a pas d'option "-s start", il dira nginx: option invalide: "-s start"
Vous pouvez démarrer nginx en
Sudo /etc/nginx/sbin/nginx
Le serveur sera démarré et il n'y aura alors aucune erreur de numéro de pid non valide.
Dans mon cas, nginx a été arrêté (planté je suppose). Résolu le problème en:
service nginx status
nginx stop/waiting
service nginx start
nginx start/running, process 3535
Ensuite, le rechargement de nginx -s a fonctionné comme un charme.
J'utilise nginx/1.8.0 sur fidèle.
Pour éviter les temps d'arrêt lors du redémarrage de nginx,
ps aux | grep nginx
PID of nginx master process
echo PID > /var/run/nginx.pid
nginx -s reload
Cela résoudra le problème sur Ubuntu 16.04 et supérieur
Sudo service nginx stop
Sudo service nginx start
ps -eaf|grep nginx # confirm its running
Sudo nginx -t && Sudo nginx -s reload # confirm config is OK
# typical output
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful
Sudo service nginx stop # issue stop
ps -eaf|grep nginx # confirm it actually stopped
maintenant la raison a été restaurée et vous êtes libre de lancer à volonté
Sur CentOS 7, je l'ai fait avec ceci:
Sudo systemctl start nginx
#Then check all things are OK
Sudo systemctl status -l nginx