Linux – Script mata procesos

Quien no se ha encontrado alguna vez con un proceso con muchos hijos, un apache desbocado o muchos procesos zombies que consumen todo los recursos de la maquina. Con este script podemos matar todos los procesos que se llamen de una determinada forma de una vez.

El script es el siguiente:

 #!/bin/sh
kill -9 `ps -ef|grep -v grep |grep $1| awk '{print $2}'`

La Explicacion es la siguiente:

ps -ef|grep -v grep |grep $1 con estos comandos mostramos todos los procesos que hay en la maquina que se llamen $1. $1 es una variable que le pasaremos al script cuando lo invoquemos.

La salida de estos comandos solo seria:

juan@elsotanilllo:~/scripts$ ps -ef|grep -v grep |grep proceso
root 2259 1 0 Jul26 tty1 00:00:00 proceso
root 2265 1 0 Jul26 tty2 00:00:00 proceso
root 2266 1 0 Jul26 tty3 00:00:00 proceso
root 2267 1 0 Jul26 tty4 00:00:00 proceso
root 2268 1 0 Jul26 tty5 00:00:00 proceso
root 2269 1 0 Jul26 tty6 00:00:00 proceso

awk ‘{print $2}’ con el awk filtramos la segunda columna, que es la que nos interesa ya que es la que tiene los PID (identificadores de proceso) que es lo que entiende el Kill. La salida de los comandos hasta ahora seria:

juan@elsotanilllo:~/scripts$ ps -ef|grep -v grep |grep proceso
2259
2265
2266
2267
2268
2269

Una vez que ya tenemos los PID, tan solo queda matarlos con el kill -9
Después de escribir el script por ejemplo con el nombre MataProcesos.sh, tenemos que hacerlo ejecutable:

juan@elsotanilllo:~/scripts$ chmod +x MataProcesos.sh

Uso del Script:

Para usarlo, lo único que tenemos que hacer es llamarlo y pasarle como parámetro el nombre del proceso que queramos matar: httpd, samba, gcc, etc.

juan@elsotanilllo:~/scripts$ ./MataProcesos.sh httpd

Este ejemplo mataría todos los procesos httpd de la maquina, siempre que el usuario que ejecuta el script tenga suficientes privilegios.

Share

7 thoughts on “Linux – Script mata procesos

  1. Perdona, que estabamos en español, el cuadro del comentario en ingles me ha hecho pensar que estabamos en ingles: por qué necesitas usar el “grep -v grep”. No le encuentro sentido. La verdad es que lo he usado sin el “grep -v grep” y usandolo y los resultados que me dan son un poco distintos. Estaría bien el por qué se utiliza.

    • El menos -v se usa para quitar lo que viene despues del -v

      Asi en el resultado no verias la linea del grep

      -v, --invert-match
      Invert the sense of matching, to select non-matching lines.

  2. Pingback: Matar Procesos en Linux | El Taller del BIT

Leave a Reply

Your email address will not be published. Required fields are marked *

Información básica sobre protección de datos Ver más

  • Responsable: Juan Sierra Pons.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a ovh que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.