2012-05-30 18 views
5

Quiero escribir un script de shell para encontrar el proceso en ejecución para un usuario dado y matar el proceso obteniendo el ID de proceso respectivo.Redireccionando la salida del comando ps, obteniendo el ID del proceso y matando ese proceso usando el script de shell

es como

ps -ef | grep dinesh 

Después de esto, estoy consiguiendo el resultado que el siguiente

dinesh 19985 19890 0 11:35 pts/552 00:00:00 grep dinesh 

Aquí 19985 es el ID de proceso. Quiero matar ese proceso.

¿Cómo puedo lograr esto usando script?

que tiene que analizar la salida del comando ps y obtener el ID del proceso

Gracias de antemano.

Respuesta

11
kill `ps -ef | grep dinesh | awk '{ print $2 }'` 
+0

Muchas gracias NAB. :). Es muy útil. – Dinesh

+0

Funciona también con ps aux _kill 'ps aux | grep dinesh | awk '{print $ 2}' '_ – Laoneo

4

¿Qué pasa si hay más de un proceso definido por la cadena 'dinesh'? ¿Qué pasa con el proceso grep en sí? Esta es una respuesta más completa

ps -ef | grep dinesh | grep -v grep | awk '{print $2}' | xargs kill -9

+0

short:' ps -ef | awk '/ d [i] nesh/{print $ 2}' 'ese corchete es un truco perfecto para evitar el proceso de awk de la salida ps – ernesto

Cuestiones relacionadas