2013-01-04 12 views
8

Eseguo un eseguibile del server in Centos utilizzando il seguente comando "nohup server &". Ora ho bisogno di uccidere il processo "server". Ma ho provato il comando "ps -a" per ottenere il PID ma non ho potuto ottenere il processo. Ora come uccidere il "server" ora?Trova il processo eseguito dal comando nohup

+2

ps auxwww | grep -i 'server' deve restituire tutto il processo che contiene 'server'. Altrimenti, il server potrebbe essersi già fermato. –

+1

ps aux | server grep – Mikhail

+0

@Usman saleem ringrazia questo risolve la mia risposta. Ho ancora un dubbio "nohup server &" è il comando giusto, per eseguire un backgroung di processo anche se chiudo il terminale? – 2vision2

risposta

15

ps auxwww|grep -i 'server' dovrebbe restituire tutti i processi che ha server in loro. Altrimenti, il server potrebbe essersi già fermato.

Si dovrebbe essere in grado di determinare il PID (e conservarla in un file) come segue:

nohup server & 
print $! >> my_server.pid 
+0

Grazie per la risposta. – 2vision2

1

Il modo migliore per avviare un server in centos è con il comando di servizio.

Così service httpd start

c'è una possibilità che si desidera scrivere il programma come demone

Un demone (o servizio) è un processo in background che è stato progettato per funzionare autonomamente, con poco o nessun intervento da parte dell'utente. Il demone http (httpd) del server web Apache (httpd) è uno di questi esempi di demone. Aspetta in ascolto in ascolto su porte specifiche e pubblica pagine o script di processi , in base al tipo di richiesta.

Vedi http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html

+0

Ho solo bisogno di eseguire il mio background eseguibile? puoi dare qualche esempio? – 2vision2

+0

@ 2vision2 vuoi scrivere il tuo programma come un demone linux vedi http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html – Mikhail

+0

Grazie per la risposta – 2vision2

2

Non c'è modo definitivo per catturare il processo esatto con l'aiuto di ps comando, ma è possibile utilizzare il seguente:

ps -a | grep "server" 

si otterrà una lista di tutti i processi in esecuzione con il nome "server"

in alternativa, è possibile utilizzare qualsiasi altra parola chiave anche per gr ep l'uscita ps.

+1

Grazie per la risposta. – 2vision2

12

Se un file è stato creato nohup.out, si può incorrere in bash:

# lsof nohup.out 

verrà restituito il pid che ha creato/è in esecuzione il file

migliori saluti!

Problemi correlati