Maison > Opération et maintenance > Nginx > Que faire si le fichier nginx.pid est perdu lors du redémarrage de nginx

Que faire si le fichier nginx.pid est perdu lors du redémarrage de nginx

王林
Libérer: 2020-10-19 17:31:57
avant
5066 Les gens l'ont consulté

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)
Copier après la connexion

Étape 1 :

Recherchez le numéro du processus principal nginx, le code est le suivant. :

ps -ef | grep nginx
Copier après la connexion

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 主进程号
Copier après la connexion

Arrêtez Nginx rapidement :

kill -TERM 主进程号
Copier après la connexion

Forcer l'arrêt de Nginx, le code est comme suit :

pkill -9 nginx
Copier après la connexion

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’
Copier après la connexion

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 住进称号或进程号文件路径
Copier après la connexion

ou utiliser

/usr/nginx/sbin/nginx -s reload
Copier après la connexion

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
Copier après la connexion

ou

/usr/nginx/sbin/nginx -t
Copier après la connexion

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 旧版程序的主进程号或进程文件名
Copier après la connexion

À 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 旧版主进程号
Copier après la connexion

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 旧/新版主进程号
Copier après la connexion

Fermez l'ancien/nouveau processus calmement

kill -QUIT 旧/新主进程号
Copier après la connexion

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 旧/新工作进程号
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

Comment utiliser, le code est le suivant :

nginx -c /path/to/config/file
Copier après la connexion

La commande d'exécution du système Linux est la suivante :

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal