Heim > Artikel > Betrieb und Instandhaltung > Was tun, wenn die Datei nginx.pid beim Neustart von nginx verloren geht?
1. Stoppen Sie den Betrieb von Nginx
(Empfohlenes Tutorial: Nginx-Tutorial)
Der Stoppvorgang wird durch Senden eines Signals an den Nginx-Prozess erreicht 1:
[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)
Suchen Sie in der Prozessliste nach dem Masterprozess. Seine Nummer ist die Hauptprozessnummer.
Schritt 2:
ps -ef | grep nginxStoppen Sie Nginx schnell:
kill -QUIT 主进程号Erzwingen Sie das Stoppen von Nginx. Der Code lautet wie folgt:
kill -TERM 主进程号
Außerdem, wenn der PID-Dateispeicherpfad wird dann in nginx.conf konfiguriert. In dieser Datei wird die Nginx-Hauptprozessnummer gespeichert. Wenn nicht angegeben, wird sie im Nginx-Protokollverzeichnis abgelegt. Mit der PID-Datei müssen Sie nicht zuerst die Hauptprozessnummer von Nginx abfragen, sondern senden direkt ein Signal an Nginx. Der Befehlscode lautet wie folgt:
pkill -9 nginx
2. Reibungsloser Neustart von Nginx
kill -信号类型 ‘/usr/nginx/logs/nginx.pid’Oder verwenden Sie
kill -HUP 住进称号或进程号文件路径Beachten Sie, dass es nach dem Ändern der Konfigurationsdatei am besten ist, zu überprüfen, ob die geänderte Konfigurationsdatei korrekt ist, um Nginx-Fehler nach dem Neustart zu vermeiden, die sich auf den Stable auswirken Betrieb des Servers. Der Befehlscode zur Feststellung, ob die Nginx-Konfiguration korrekt ist, lautet wie folgt:
/usr/nginx/sbin/nginx -s reload
oder
nginx -t -c /usr/nginx/conf/nginx.conf
3. Reibungsloses Upgrade von Nginx
/usr/nginx/sbin/nginx -taus. Zu diesem Zeitpunkt benennt der alte Nginx-Hauptprozess seine Prozessdatei in .oldbin um und führt dann die neue Version von Nginx aus. Der neue und der alte Nginx laufen zusammen, um Anfragen zu verarbeiten. Zu diesem Zeitpunkt müssen Sie die alte Version von Nginx schrittweise stoppen. Geben Sie den Befehl ein:
kill -USR2 旧版程序的主进程号或进程文件名Langsam wird der alte Arbeitsprozess beendet, wenn die Aufgabe abgeschlossen ist, und die neue Version des Nginx-Arbeitsprozesses wird nach und nach ersetzt alter Arbeitsprozess. Sie können sich entscheiden, die neue Version zu verwenden oder zur alten Version zurückzukehren.
4. Starten Sie den neuen/alten Arbeitsprozess, ohne die Konfiguration zu überlasten.
kill -WINCH 旧版主进程号. Verwenden Sie den folgenden Befehl, um zuerst den alten/neuen Arbeitsprozess zu schließen, und schließen Sie dann die Hauptprozessnummer:
kill -HUP 旧/新版主进程号Beachten Sie, dass auf dem Alibaba Cloud-Server, wenn Sie nginx -s reload erneut starten, nachdem der Prozess nginx -s stoppt, Es wird immer ein Fehler gemeldet
kill -QUIT 旧/新主进程号Grund: pid, nachdem der Nginx-Prozess beendet wurde. Er geht verloren und das Neuladen von nginx -s kann beim nächsten Mal nicht gestartet werden. Sie können sich auch auf die englische Erklärung beziehen:
kill -TERM 旧/新工作进程号Wie zu verwenden, der Code lautet wie folgt:
nginx: [error] open() “/alidata/server/nginx/logs/nginx.pid” failed (2: No such file or directory)Der Linux-Systemausführungsbefehl lautet wie folgt:
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)
Das obige ist der detaillierte Inhalt vonWas tun, wenn die Datei nginx.pid beim Neustart von nginx verloren geht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!