2013-06-17 9 views
10

ho iniziato un server ballerino/Starman utilizzando:Come si ferma un server perl Dancer/Starman/Plack?

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

ma non sono sicuro come posso arrestare il server. Qualcuno può fornirmi un modo rapido per fermarlo e tutti i lavoratori che ha generato?

+0

Perché "sudo"? Hai davvero bisogno di eseguire questa cosa come root? – innaM

+0

Buona domanda ... probabilmente no! :) –

risposta

13

Utilizzare il

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

e si può uccidere il processo in base alla sua PID

Quindi, utilizzando le opzioni di cui sopra, è possibile utilizzare

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

il pid.file memorizza semplicemente il master PID - non è necessario analizzare l'uscita ps ...

+0

Ho ucciso il processo, ma ora non posso riavviarlo usando plackup. Dice che c'è ancora un server in esecuzione su quella porta –

+1

non usare 'kill -9', ma semplicemente' kill'. Ora rimuovere manualmente il file pid. Il 'kill -9' non chiude i socket aperti e così via ... – jm666

+0

Oops :(Quindi ho già usato kill -9, comunque per recuperare? Inoltre, dove trovo il file pid? Nessuno è stato specificato all'avvio E il processo sembra continuare a servire richieste sulla porta 5001, anche se l'ho ucciso con kill -9! –

1

pkill -f starman

Uccidere i processi in base al nome.

0

Su Windows è possibile eseguire "CTRL + C" come fare una copia, ma in questo caso Annulla. Testato di lavoro.

+1

L'uso dell'OP di sudo' implica che si trovi su Linux (o Unix in generale). CTRL + C funziona anche qui _if_ il server viene eseguito in primo piano. Ma penso che la domanda riguardasse l'arresto del server _con un comando_. – PerlDuck

Problemi correlati