2013-06-17 17 views
10

Ich begann einen Tänzer/Starman-Server mit:Wie stoppt man einen Perl Dancer/Starman/Plack Server?

 
sudo plackup -s Starman -p 5001 -E deployment --workers=10 -a mywebapp/bin/app.pl 

aber ich bin nicht sicher, wie ich den Server zu stoppen. Kann mir jemand einen schnellen Weg geben, um ihn und all die Arbeiter, die er hervorgebracht hat, zu stoppen?

+0

Warum 'sudo'? Müssen Sie dieses Ding wirklich als root ausführen? – innaM

+0

Gute Frage ... wahrscheinlich nicht! :) –

Antwort

13

Verwenden Sie die

--pid /path/to/the/pid.file 

und Sie können den Prozess beenden, basierend auf seiner PID

also die oben genannten Optionen verwenden, können Sie

kill $(cat /path/to/the/pid.file) 

die pid.file speichert einfach die Master verwenden können PID - Analysieren Sie nicht die ps Ausgabe ...

+0

Ich habe den Prozess beendet, aber jetzt kann ich es nicht neu starten mit plackup. Es besagt, dass auf diesem Port immer noch ein Server läuft –

+1

Verwenden Sie nicht 'kill -9', sondern einfach' kill'. Entfernen Sie die PID-Datei manuell. Das 'kill -9' schließt geöffnete Sockets nicht und so weiter ... – jm666

+0

Hoppla :(Also habe ich schon kill -9 benutzt. Wie auch immer, wo finde ich die pid-Datei? Keine wurde beim Start angegeben Und der Prozess scheint weiterhin Anfragen auf Port 5001 zu bedienen, selbst wenn ich ihn mit kill -9! –

1

pkill -f starman

Kill-Prozesse basierend auf Name.

0

Unter Windows können Sie "CTRL + C" wie eine Kopie erstellen, aber in diesem Fall abbrechen. Getestet arbeiten.

+1

Die Verwendung von 'sudo' im OP bedeutet, dass er auf Linux (oder Unix im Allgemeinen) läuft. STRG + C funktioniert auch dort _wenn der Server im Vordergrund läuft. Aber ich denke, es ging darum, den Server mit einem Befehl zu stoppen. – PerlDuck