Wie starte ich nginx neu?

95

Für mich starte ich "killall nginx" und starte es mit "sbin / nginx", hat jemand ein besseres Neustart-Skript?

Übrigens: Ich installiere nginx von der Quelle, ich finde den Befehl 'service nginx' oder /etc/init.d/nginx nicht

Larry
quelle
1
Warum installieren Sie von der Quelle? Nginx-Pakete sind für die meisten guten Server-Linux-Distributionen verfügbar. Oder Sie könnten Ihre eigenen Pakete rollen, aber wenn Sie keine Pakete verwenden, ist dies ein Problem für die Wartbarkeit.
Tom O'Connor
wegen mod_rails
larry

Antworten:

149

Das nginx-Paket enthält ein Skript /etc/init.d/nginx, das die übliche Funktion zum Starten | Stoppen | Neustarten | Neuladen ... bietet.

/etc/init.d/nginx restart

startet nginx neu

wie es sein wird

service nginx restart

Bearbeiten

Hier ist ein Link zu einem Skript, das Sie als /etc/init.d/nginx verwenden können.

Iain
quelle
2
Hängt von Ihrem Repository ab. Die Nginx-Quelle stellt keine Init-Skripte zur Verfügung. Wenn Sie also aktualisiert und aus der Quelle kompiliert werden möchten, müssen Sie eines aus dem Wiki herunterladen.
Martin Fjordvald
1
Ich muss mehr Kaffee
trinken,
Auf was verweist Service Nginx Restart und ist es angebracht, etwas neu zu laden, wenn eine Änderung an init.d / Nginx vorgenommen wird? Meine beiden Befehle (/etc/init.d/nginx und service nginx) scheinen nicht synchron zu sein.
Danny
@Danny: Keine Ahnung, ich habe das> vor 2 Jahren geschrieben.
User9517
15

http://wiki.nginx.org/CommandLine

In den Links befinden sich Befehle zum Starten und Stoppen des Nginx-Servers

zum starten von nginx:

/usr/bin/nginx

zum Stoppen von Nginx:

/usr/bin/nginx -s stop

/usr/bin hängt davon ab, wo du dein nginx installierst

LiJung
quelle
4

Aus irgendeinem Grund arbeite ich auf dem eingebetteten System daran:

systemctl restart nginx
Kardamom
quelle
1
Diese Frage und die meisten Antworten sind acht Jahre alt und veraltet. Das ist "irgendein Grund". Dies ist die richtige Vorgehensweise auf aktuellen Linux-Betriebssystemen.
Michael Hampton
Okay, vielleicht gilt das dann nicht nur für eingebettete Systeme
Kardamom
1

Nachdem ich die Konfigurationsdateien bearbeitet habe, starte ich sie unter OpenBSD folgendermaßen neu:

kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && \
    tail -2 /var/www/logs/error.log ; date

Das HUPSignal veranlasst es, seine Konfigurationsdateien erneut zu lesen, tailzeigt an, ob Fehler aufgetreten sind, datestellt diese Fehler in den Kontext (ein Fehler ist nur aufgetreten, wenn die Uhrzeit von datemit der Uhrzeit aus dem Protokoll übereinstimmt) und sleep 1stellt sicher, dass sie vorliegen Keine Wettkampfbedingungen zwischen dem Lesen aus dem Protokoll, bevor Nginx Zeit hatte, darauf zu schreiben.

So sieht es aus:

Cns# kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && tail -2 /var/www/logs/error.log ; date
Tue Feb 12 10:58:52 PST 2013
2013/02/12 10:03:35 [emerg] 8120#0: directive "set" is not terminated by ";" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:226
2013/02/12 10:04:19 [emerg] 8120#0: invalid return code "$uri_def" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:231
Tue Feb 12 10:58:53 PST 2013
Cns# 

Die Tatsache, dass die Zeit aus dem Protokoll nicht zwischen den von gedruckten Zeiten liegt, datezeigt an, dass diesmal keine Fehler aufgetreten sind, und die neue Konfiguration ist eine gute.

cnst
quelle
0

Sie finden Init-Skripte im NginX-Wiki: http://wiki.nginx.org/Configuration#Init_Scripts

Die Neustartfunktion führt den folgenden Befehl aus:

BASEDIR=
$BASEDIR/sbin/nginx -s stop
$BASEDIR/sbin/nginx $BASEDIR/conf/nginx.conf

Wenn Sie Nginx in / opt / nginx installiert haben, ersetzen Sie es BASEDIR=durch BASEDIR=/opt/nginx.

Lekensteyn
quelle
0

Normalerweise installieren Pakete, die aus dem Quellcode installiert wurden, kein Startskript unter /etc/init.d/. Sie haben zwei Möglichkeiten.

1- Sie können nach einem Skript im Quellcodeverzeichnis oder auf der Website suchen und es bei Bedarf anpassen.

2- Sie können ein Startskript für ein anderes Paket von Ihrem System kopieren und anpassen.

Khaled
quelle