So stoppen Sie nginx unter Mac OS X

37

Ich habe den nginx-Server von MacPorts auf meinem Mac installiert und konfiguriert

  1. sudo port install nginx
  2. Befolgte die Empfehlung von der Port-Installationskonsole und erstellte das Startelement launchd für nginx und startete dann den Server.
  3. Umbenannt nginx.conf.examplein nginx.confund umbenannt mime.types.examplein mime.types.

Es funktioniert gut, aber ich konnte es nicht aufhalten.

Ich habe es versucht sudo nginx -s stop, aber dies stoppt den Server nicht. Ich kann immer noch "Willkommen bei Nginx!" Sehen. Seite in meinem Browser an http://localhost/; auch sehe ich noch meister- und arbeiterprozesse von nginx mit ps -e | grep nginx.

Was ist der beste Weg, um Nginx auf dem Mac zu starten / stoppen?

Übrigens habe ich "daemon off" hinzugefügt. in nginx.conf - wie von verschiedenen Ressourcen empfohlen.

Alex Kaushovik
quelle

Antworten:

66
# nginx -h
...
-s signal     : send signal to a master process: stop, quit, reopen, reload
...
SaveTheRbtz
quelle
Als ich nginx mit MacPorts installiert habe, hat der obige Befehl nicht funktioniert - ich habe keinen Fehler gemeldet, aber der Server lief weiter. Aber wenn ich Nginx sauber gewischt und im Rahmen der Installation des Nginx-Moduls für Beifahrer neu installiert habe, funktioniert es jetzt: Ich kann "nginx -s stop" ausführen und der Server wird wirklich gestoppt. Danke!
Alex Kaushovik
2
using nginx -s stophat bei mir funktioniert, aber dann konnte ich meinen Server entweder nginx -s reopenmit nginx -s reload, nginx -s startoder nginx -s restart? nicht neu starten . Wie starte ich neu? Egal, nur das Ausführen des Programms $ sudo /usr/local/sbin/nginxstartet es neu.
Tim Peterson
@timpeterson restartoder reloadfunktioniert auf ... funktionierendem Server. Wenn Sie ihn stoppen, müssen Sie ihn nur mit dem allgemeinen nginxBefehl 'no-signal' starten .
Biesior
16

Dieser Befehl stoppt auch nginx.

sudo nginx -s stop 
Sanduhr
quelle
8

Die richtige Vorgehensweise für Nginx, das über MacPorts installiert wurde:

  • Start: sudo port load nginx
  • Halt: sudo port unload nginx

OS X verwendet launchd, sodass das Starten / Stoppen von Daemons etwas anders ist.

R. van Twisk
quelle
4

Schauen Sie sich die PID des Master-Prozesses an und machen Sie

kill -QUIT <master_pid>
Alexander Azarov
quelle
1
Wie kann ich die PID nachschlagen?
user1767754
ps aux | grep nginx
Lacostenycoder
Möglicherweise müssen Sie tunsudo kill -9 <pid>
Lacostenycoder
3

Sie können Folgendes versuchen:

ps -lef|grep -i nginx:|awk '{ print $2}'|xargs kill -9
thinkhy
quelle