Comandos Linux: kill

comandos linux kill command signal pid proccess proceso matar procesosUno 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.

Comandos Linux: kill

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 linea. 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

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

Lista de las señales que pueden ser enviada a un proceso por el comando kill:

1) SIGHUP
2) SIGINT
3) SIGQUIT
4) SIGILL
5) SIGTRAP
6) SIGABRT
7) SIGBUS
8) SIGFPE
9) SIGKILL
10) SIGUSR1
11) SIGSEGV
12) SIGUSR2
13) SIGPIPE
14) SIGALRM
15) SIGTERM
16) SIGSTKFLT
17) SIGCHLD
18) SIGCONT
19) SIGSTOP
20) SIGTSTP
21) SIGTTIN
22) SIGTTOU
23) SIGURG
24) SIGXCPU
25) SIGXFSZ
26) SIGVTALRM
27) SIGPROF
28) SIGWINCH
29) SIGIO
30) SIGPWR
31) SIGSYS
34) SIGRTMIN
35) SIGRTMIN+1
36) SIGRTMIN+2
37) SIGRTMIN+3
38) SIGRTMIN+4
39) SIGRTMIN+5
40) SIGRTMIN+6
41) SIGRTMIN+7
42) SIGRTMIN+8
43) SIGRTMIN+9
44) SIGRTMIN+10
45) SIGRTMIN+11
46) SIGRTMIN+12
47) SIGRTMIN+13
48) SIGRTMIN+14
49) SIGRTMIN+15
50) SIGRTMAX-14
51) SIGRTMAX-13
52) SIGRTMAX-12
53) SIGRTMAX-11
54) SIGRTMAX-10
55) SIGRTMAX-9
56) SIGRTMAX-8
57) SIGRTMAX-7
58) SIGRTMAX-6
59) SIGRTMAX-5
60) SIGRTMAX-4
61) SIGRTMAX-3
62) SIGRTMAX-2
63) SIGRTMAX-1
64) SIGRTMAX

Puedes ver mas detalles sobre las señales que puede enviar el comando kill y su significado en la siguiente URL (en inglés) http://man7.org/linux/man-pages/man7/signal.7.html

Tu Servidor y Amigo

Luis Armando Medina

Sígueme en Twitter: @larmedina
Sígueme en Facebook: dame un like LuisMedinaMLM

This entry was posted in Comandos Linux and tagged , , , , . Bookmark the permalink.

4 Responses to "Comandos Linux: kill"

Responder a Miguel Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.