2013-06-17 11 views
10

zacząłem serwera Dancer/Starman używając:Jak zatrzymać serwer Perl Dancer/Starman/Plack?

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

ale jestem pewien, w jaki sposób można zatrzymać serwer. Czy ktoś może mi zapewnić szybki sposób na zatrzymanie go i wszystkich pracowników, których zrodził?

+0

Dlaczego 'sudo'? Czy naprawdę potrzebujesz uruchomić to jako root? – innaM

+0

Dobre pytanie ... prawdopodobnie nie! :) –

Odpowiedz

13

Użyj

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

i można zabić procesu na podstawie jego PID

Tak, stosując powyższe opcje, można użyć

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

pid.file prostu przechowuje magistra PID - nie trzeba analizować wyjścia ps ...

+0

Uśmierciłem proces, ale teraz nie mogę go ponownie uruchomić za pomocą trybu. Mówi, że nadal działa serwer na tym porcie –

+1

, nie używaj 'kill -9', ale prostego' kill'. Teraz ręcznie usuń plik pid. 'Kill -9' nie zamyka otwartych gniazd i tak dalej ... – jm666

+0

Ups :(Więc już użyłem kill -9. W każdym razie, aby odzyskać? Również, gdzie znajdę plik pid? Nie określono przy uruchamianiu I proces wydaje się nadal obsługiwać żądania na porcie 5001, nawet, jeśli zabiłem go z kill -9! –

1

pkill -f starman

Zabij procesy na podstawie imienia i nazwiska.

0

W systemie Windows można zrobić "CTRL + C", jak wykonanie kopii, ale Anuluj w tym przypadku. Sprawdzone działanie.

+1

Stosowanie przez OP 'sudo' implikuje, że jest on na Linuksie (lub Unixie w ogóle). CTRL + C działa tam również _if_ serwer działa na pierwszym planie. Ale myślę, że chodziło o zatrzymanie serwera z komendą_. – PerlDuck