Heim  >  Artikel  >  Betrieb und Instandhaltung  >  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?

王林
王林nach vorne
2020-10-19 17:31:574974Durchsuche

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)

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

Stoppen 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

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’

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

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

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 旧版程序的主进程号或进程文件名

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen