El comando kill en Linux permite terminar procesos mediante la identificación de su PID. Se usa kill junto con el PID para enviar una señal por defecto de terminación normal (SIGTERM), pero también se pueden enviar otras señales como SIGKILL para forzar la terminación. El comando ps se usa para listar procesos y ver los PIDs.
Como usar el comando kill en Ubuntu para terminar procesos
1. EDGAR SANTIAGO AIMACAÑA AIMACAÑA SEGUNDO ARQUITECTURA “B”
“UNIVERSIDAD TECNOLÒGICA INDOAMERICA”
FACULTAD DE ARQUITECTURA Y ARTES APLICADAS
HERRAMIENTAS DE A INFORMÁTICA
CONSULTA
DOCENTE: Ing. Jorge Tapia
ALUMNO: Edgar Santiago AimacañaAimacaña
TEMA: consultar acerca del comando killer en Ubuntu.
AMBATO - ECUADOR
2. EDGAR SANTIAGO AIMACAÑA AIMACAÑA SEGUNDO ARQUITECTURA “B”
¿QUÉ ES KILLER?
Uno de los comandos básicos de Linux para administrar un sistema Linux o para
administrar un servidor Linux es el comando que permite detener procesos o como se dice
comúnmente, matar uno o varios procesos. Este comando en Linux es el comando kill.
La principal función para utilizar este comando es cuando un servicio o cuando un
proceso se sale de control o cuando entra en un ciclo infinito causando que el servidor o
el sistema se ponga lento o que deja de responder al ocupar demasiados recursos del
sistema como la memoria o el espacio en disco. En estos casos en necesario terminar o
matar dicho proceso.
Para utilizar el comando linuxkill en Linux y matar algún proceso solo debes indicar en
identificador de proceso, este puede ser llamado PID o Process ID, para conocer el PID
de un programa o proceso puedes utilizar el comando ps para obtener una lista de los
procesos que están en ejecución. Aquí te pongo un ejemplo:
$ ps
PID TTY TIME CMD
2541 pts/0 00:00:00 bash
2590 pts/0 00:00:00 ps
En este ejemplo el PID es mostrado como un número al inicio de cada línea. Como vemos
el proceso “bash” tiene el PID 2541. Si quisieras detener este proceso lo que tienes que
hacer es ejecutar el comando kill y el número de PID 2541 de la siguiente forma:
$ kill 2541
3. EDGAR SANTIAGO AIMACAÑA AIMACAÑA SEGUNDO ARQUITECTURA “B”
Esto es la explicación sencilla pero hay mas detalles que podemos ver sobre el comando
kill ya que este comando lo que hace es enviar una señal a uno o más procesos y las
señales que pueden ser enviadas son 64 y puedes ver la lista completa al final del artículo,
pero las más comunes son:
0) SUGNULL Null (Checar acceso al PID)
1) SIGHUP Hangup (Terminar)
2) SIGINT Interrupt (Terminar)
3) SIGQUIT Quit (Terminar con salida del core)
9) SIGKILL Kill (Forzar que el proceso termine)
15) SIGTERM Terminate (Terminar normalmente el proceso)
18) SIGCONT Continue (Corre un proceso detenido)
19) SIGSTOP Stop (Detiene un proceso)
20) SIGTSTP Terminal (Pausa el proceso)
Cuando se invoca el comando kill por omisión se envía la señal 15) SIGTERM, esta señal
busca que el proceso termine de forma normal, como el ejemplo anterior. Sin embargo
hay ocasiones que un proceso puede no responder a esta señal. Si se desea matar ese
proceso se puede enviar la señal 9) SIGKILL agregando un -9 como parámetro al
comando kill, así:
$ kill -9 2541
Otro ejemplo práctico del uso del comando kill es cuando requieres terminar o matar
varios procesos a la vez, para conocer los PIDs de algún programa podemos usar el
comando ps y enviar la salida por un pipe (tubería) hacia el comando grep para que nos
muestre solo las líneas de texto que incluyan la palabra «apache» para luego seleccionar
solo los PIDs que nos interesa detener. Así se vería la salida de estos comandos:
$ ps aux | grep apache
root 1489 0.0 0.3 233536 10092 ? Ss 22:11 0:00 /usr/sbin/apache2 -k start
www-data 1740 0.0 0.1 233560 6052 ? S 22:11 0:00 /usr/sbin/apache2 -k start
www-data 1741 0.0 0.1 233560 6052 ? S 22:11 0:00 /usr/sbin/apache2 -k start
www-data 1742 0.0 0.1 233560 6052 ? S 22:11 0:00 /usr/sbin/apache2 -k start
www-data 1743 0.0 0.1 233560 6052 ? S 22:11 0:00 /usr/sbin/apache2 -k start
www-data 1744 0.0 0.1 233560 6052 ? S 22:11 0:00 /usr/sbin/apache2 -k start
$ sudo kill 1740 1741 1742 1743 1744
[sudo] password for user:
$ ps aux | grep apache
root 1489 0.0 0.3 233536 10104 ? Ss 22:11 0:00 /usr/sbin/apache2 -k start