Maison >Opération et maintenance >Nginx >Que faire si le fichier nginx.pid est perdu lors du redémarrage de nginx
1. Arrêter le fonctionnement de nginx
(Tutoriel recommandé : Tutoriel nginx)
L'opération d'arrêt consiste à arrêter le Processus nginx par Ceci est réalisé en envoyant un signal. Le message d'erreur spécifique est le suivant :
[root@yoodb.com ~]# /usr/local/nginx/sbin/nginx -s reload nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
Étape 1 :
Recherchez le numéro du processus principal nginx, le code est le suivant. :
ps -ef | grep nginx
dans Recherchez le processus maître dans la liste des processus, et son numéro est le numéro du processus principal.
Étape 2 :
Envoyer un signal pour arrêter Nginx gracieusement :
kill -QUIT 主进程号
Arrêtez Nginx rapidement :
kill -TERM 主进程号
Forcer l'arrêt de Nginx, le code est comme suit :
pkill -9 nginx
De plus, si le chemin de stockage du fichier pid est configuré dans nginx.conf, le fichier stockera le numéro du processus principal Nginx. S'il n'est pas spécifié, il sera placé dans nginx. répertoire des journaux. Avec le fichier pid, il n'est pas nécessaire d'interroger d'abord le numéro du processus principal de Nginx, mais d'envoyer directement un signal à Nginx. Le code de commande est le suivant :
kill -信号类型 ‘/usr/nginx/logs/nginx.pid’
2. Redémarrage en douceur de nginx.
Si après avoir modifié la configuration, vous pouvez envoyer un signal à Nginx et redémarrer en douceur.
Le code de la commande de redémarrage en douceur est le suivant :
kill -HUP 住进称号或进程号文件路径
ou utiliser
/usr/nginx/sbin/nginx -s reload
Notez qu'après avoir modifié le fichier de configuration, il est préférable de vérifier si le fichier de configuration modifié est corriger pour éviter de redémarrer Plus tard, une erreur s'est produite dans Nginx, ce qui a affecté le fonctionnement stable du serveur. Le code de commande pour déterminer si la configuration de Nginx est correcte est le suivant :
nginx -t -c /usr/nginx/conf/nginx.conf
ou
/usr/nginx/sbin/nginx -t
3. Mise à niveau en douceur de nginx
Si le le serveur exécute Nginx doit être effectué Lors de la mise à niveau, de l'ajout ou de la suppression de modules, nous devons arrêter le serveur et apporter les modifications correspondantes, afin que le serveur cesse de servir pendant un certain temps et que Nginx puisse effectuer diverses actions de mise à niveau sans arrêter le serveur. sans affecter le fonctionnement du serveur.
Étape 1 :
Si vous mettez à niveau le programme Nginx, remplacez d'abord l'ancien fichier du programme par le nouveau programme. Après la compilation et l'installation, le nouveau programme sera compilé directement dans le répertoire d'installation de Nginx. .
Étape 2 : Exécutez la commande
kill -USR2 旧版程序的主进程号或进程文件名
À ce stade, l'ancien processus principal de Nginx renommera son fichier de processus en .oldbin, puis exécutera la nouvelle version de Nginx. Le nouveau et l'ancien Nginx fonctionnent ensemble pour traiter les requêtes.
À ce stade, vous devez arrêter progressivement l'ancienne version de Nginx. Entrez la commande :
kill -WINCH 旧版主进程号
Lentement, l'ancien processus de travail se terminera à mesure que la tâche est terminée et la nouvelle version. du processus de travail de Nginx remplacera progressivement l'ancienne version.
Vous pouvez décider d'utiliser la nouvelle version ou de revenir à l'ancienne version.
4. Démarrez le nouveau/ancien processus de travail sans surcharger la configuration
kill -HUP 旧/新版主进程号
Fermez l'ancien/nouveau processus calmement
kill -QUIT 旧/新主进程号
Si une erreur est signalé à ce moment, invite S'il y a encore des processus qui ne sont pas terminés, utilisez la commande suivante pour fermer d'abord l'ancien/nouveau processus de travail, puis fermez le numéro du processus principal :
kill -TERM 旧/新工作进程号
Notez que sur le serveur Alibaba Cloud, le processus nginx -s s'arrête puis redémarre nginx -s reload signale toujours une erreur
nginx: [error] open() “/alidata/server/nginx/logs/nginx.pid” failed (2: No such file or directory)
Raison : le pid est perdu après la suppression du processus nginx, et nginx - Le rechargement ne pourra pas être démarré la prochaine fois. La réinstallation peut résoudre le problème. Vous pouvez également vous référer à l'explication en anglais :
issued a nginx -s stop and after that I got this error when trying to reload it. [error]: invalid PID number “” in “/var/run/nginx.pid” That /var/run/nginx/pid file is empty atm. What do I need to do to fix it? nginx -s reload is only used to tell a running nginx process to reload its config. After a stop, you don’t have a running nginx process to send a signal to. Just run nginx (possibly with a -c /path/to/config/file)
Comment utiliser, le code est le suivant :
nginx -c /path/to/config/file
La commande d'exécution du système Linux est la suivante :
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!