Monitorización de procesos: pgrep, pkill y psg

By 7 de enero de 2008 Gentoo, Linux No Comments

penguin-kill.jpg Muchas veces os habréis encontrado con que queréis matar una aplicación que no responde y al hacer un ps veis que hay varios procesos que pertenecen a la misma aplicación, entonces no que más remedio que matar los procesos uno a uno. Bueno, eso era así antes de conocer pgrep y pkill. pgrep es una herramienta que dado un nombre de proceso muestra por pantalla los pid's de todos los procesos con ese nombre y pkill es su complemento que en lugar de mostrar los procesos los mata directamente.

Ejecutaremos unas cuantas veces yes redirigiendo su salida a /dev/null y poniendo el proceso en background para tener algo con lo que trabajar:


[email protected] ~ $ yes &> /dev/null & yes &> /dev/null & yes &> /dev/null &

[1] 3670

[2] 3671

[3] 3672

Si hacemos ahora un ps de los de toda la vida veremos esto (la última línea es el propio grep):

[email protected] ~ $ ps aux | grep yes

jgr       3670 42.8  0.0   4164   584 pts/2    R    20:12   0:19 yes

jgr       3671 41.4  0.0   4164   584 pts/2    R    20:12   0:19 yes

jgr       3672 42.8  0.0   4164   584 pts/2    R    20:12   0:19 yes

jgr       4244  0.0  0.0   6368   808 pts/2    S+   20:13   0:00 grep --colour=auto yes

Ahora con pgrep veremos sólo los pid's de los procesos:

[email protected] ~ $ pgrep yes

3670

3671

3672

Y con pkill los matamos y con pgrep comprobaremos que estén realmente muertos:

[email protected] ~ $ pgrep yes

[1]   Terminado               yes >&/dev/null

[2]-  Terminado               yes >&/dev/null

[3]+  Terminado               yes >&/dev/null

pgrep y pkill tienen algunas opciones interesantes como por ejemplo -l para mostrar el nombre de los procesos (sólo pgrep) o -u/-U para mostrar o matar sólo los procesos del usuario especificado y alguna más que podéis ver en el man de pgrep.

Bueno y ya que estamos con ps os enseñaré un alias que suelo usar en el .bashrc para hacer más cómodo el uso de ps:

export GREP_COLOR="1;32" #verde claro

alias grep='grep --colour=auto'

alias psg="ps aux | grep -v grep | grep"

Básicamente lo que hacen estos alias es colorear las concordancias del grep y eliminar la última línea de la salida del ps que corresponde al propio grep. Aquí podéis ver un ejemplo otra vez con el proceso yes del ejemplo anterior:

61fin.png

Vía: http://emergeworld.blogspot.com/

Leave a Reply

Your email address will not be published.