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!