domingo, 30 de abril de 2023

Comando killall

Posted by q3it on domingo, abril 30, 2023 in


Voy a seguir hablando como matar o enviar señales a procesos, en este caso vamos a ver el comando killall, que lo que hará es actuar parecido a kill, pero en vez de especificar el PID del proceso vamos a especificar el nombre o el usuario al que nosotros queremos enviar esa señal o matar sus procesos.
 
Su sintaxis killall y el nombre del proceso. Por ejemplo, nosotros especificamos killall y el comando sleep, lo que hará es buscar la tabla de procesos del pc todos los comandos que se han ejecutado con sleep sin mirar su PID y le enviaran la señal que por defecto el número 15. Si nosotros lo que queremos es matar todos los procesos de un usuario porque no debería estar en el sistema, entonces ejecutamos el comando killall -u y el usuario, por ejemplo, devnull.
 
Si nosotros en vez de querer matar todos los procesos de este usuario lo que queremos matar un nombre de proceso que está ejecutando este usuario, pues entonces especificamos como argumento de este proceso. Imaginemos que el usuario ha ejecutado un comando que ha generado muchos procesos con el nombre de sleep y nosotros queremos matarlo porque está utilizando muchos recursos, pues simplemente en vez de matar todos los sleep del sistema simplemente especificamos killall, el usuario y luego el comando. Lo que hará es buscar en la tabla de procesos los comandos sleep asociados al usuario devnull.

 
Nosotros tenemos varios procesos sleep corriendo en el sistema, si quisiéramos matar todos los procesos sleep iríamos uno a uno con el comando kill -9 y matar cada uno de los procesos, o con el comando killall especificamos el nombre del proceso sleep y veremos que se terminan todos los procesos. 
 
 
Si nosotros ejecutamos killall -u devnull y especificamos, por ejemplo -9 veremos que termina todos los procesos asociados a este usuario y cierra la sesión la sesión.
 
Una cosa importante es que cuando nosotros ejecutamos killall sólo podremos para nuestro usuario porque no somos administrador, si somos administrador podemos especificar cualquier otro usuario.