Heim > Betrieb und Instandhaltung > Nginx > Was tun, wenn die Datei nginx.pid beim Neustart von nginx verloren geht?

Was tun, wenn die Datei nginx.pid beim Neustart von nginx verloren geht?

王林
Freigeben: 2020-10-19 17:31:57
nach vorne
5011 Leute haben es durchsucht

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:

Um die Nginx-Hauptprozessnummer abzufragen, lautet der Code wie folgt:

[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)
Nach dem Login kopieren

Suchen Sie in der Prozessliste nach dem Masterprozess. Seine Nummer ist die Hauptprozessnummer.

Schritt 2:

Senden Sie ein Signal, um Nginx ruhig zu stoppen:

ps -ef | grep nginx
Nach dem Login kopieren

Stoppen Sie Nginx schnell:

kill -QUIT 主进程号
Nach dem Login kopieren

Erzwingen Sie das Stoppen von Nginx. Der Code lautet wie folgt:

kill -TERM 主进程号
Nach dem Login kopieren

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
Nach dem Login kopieren

2. Reibungsloser Neustart von Nginx

Wenn Sie sich ändern Nach der Konfiguration können Sie problemlos ein Signal an Nginx senden.

Der Befehlscode für einen reibungslosen Neustart lautet wie folgt:

kill -信号类型 ‘/usr/nginx/logs/nginx.pid’
Nach dem Login kopieren

Oder verwenden Sie

kill -HUP 住进称号或进程号文件路径
Nach dem Login kopieren

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
Nach dem Login kopieren

oder

nginx -t -c /usr/nginx/conf/nginx.conf
Nach dem Login kopieren

3. Reibungsloses Upgrade von Nginx

Wenn das auf dem Server laufende Nginx aktualisiert, Module hinzugefügt oder gelöscht werden muss, benachrichtigen wir Sie Sie müssen den Server stoppen und die entsprechenden Änderungen vornehmen, damit der Server für einen bestimmten Zeitraum nicht mehr bedient wird und Nginx verschiedene Upgrade-Aktionen durchführen kann, ohne den Serverbetrieb zu beeinträchtigen.

Schritt 1:

Wenn Sie das Nginx-Programm aktualisieren, ersetzen Sie zunächst die alte Programmdatei durch das neue Programm. Nach dem Kompilieren und Installieren wird das neue Programm direkt in das Nginx-Installationsverzeichnis kompiliert.

Schritt 2: Führen Sie den Befehl

/usr/nginx/sbin/nginx -t
Nach dem Login kopieren

aus. 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 旧版程序的主进程号或进程文件名
Nach dem Login kopieren

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 旧版主进程号
Nach dem Login kopieren
. Verwenden Sie den folgenden Befehl, um zuerst den alten/neuen Arbeitsprozess zu schließen, und schließen Sie dann die Hauptprozessnummer:

kill -HUP 旧/新版主进程号
Nach dem Login kopieren

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 旧/新主进程号
Nach dem Login kopieren

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 旧/新工作进程号
Nach dem Login kopieren

Wie zu verwenden, der Code lautet wie folgt:


nginx: [error] open() “/alidata/server/nginx/logs/nginx.pid” failed (2: No such file or directory)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage