Cómo usar el comando Kill en Linux

27 feb 2021 4 min di lettura
Cómo usar el comando Kill en Linux
Indice dei contenuti

Introducción

Algunas aplicaciones pueden comenzar a comportarse de manera errática y dejar de responder o comenzar a consumir muchos recursos del sistema. Las aplicaciones que no responden no se pueden reiniciar porque el proceso de la aplicación original nunca se detiene por completo. La única solución es reiniciar el sistema o finalizar el proceso de solicitud.

Hay varias utilidades que le permiten kill los procesos incorrectos, siendo el comando kill el más utilizado.

Matar comando

kill es un shell integrado en la mayoría de los shells derivados de Bourne, como Bash y Zsh. El comportamiento del comando difiere ligeramente entre los shells y el ejecutable independiente /bin/kill.

Use el type para ver todas las ubicaciones en su sistema que contienen kill:

type -a kill
kill is a shell builtin
 kill is /bin/kill

La salida anterior indica que el shell incorporado tiene prioridad sobre el ejecutable independiente y se usa cada vez que escribe kill. Si desea utilizar el archivo binario, escriba la ruta completa al /bin/kill. En este artículo, usaremos el Bash incorporado.

La sintaxis del kill tiene la siguiente forma:

kill [OPTIONS] [PID]..

El kill envía una señal a procesos o grupos de procesos específicos, lo que hace que actúen en función de la señal. Cuando no se especifica la señal, el valor predeterminado es -15 (-TERM).

Las señales más utilizadas son:

  • 1 ( HUP ): recarga un proceso.
  • 9 ( KILL ) - Mata un proceso.
  • 15 ( TERM ): detiene correctamente un proceso.

Para obtener una lista de todas las señales disponibles, invoque el comando con la opción -l

kill -l

 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

Las señales se pueden especificar de tres formas diferentes:

  1. Usando el número (por ejemplo, -1 OR -s 1 ).
  2. Usando el prefijo "SIG" (por ejemplo, -SIGHUP O -s SIGHUP ).
  3. Sin el prefijo "SIG" (por ejemplo, -HUP O -s HUP ).

Los siguientes comandos son equivalentes entre sí:

kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER

Los PID dados al kill pueden ser uno de los siguientes:

  • Si PID es mayor que cero, la señal se envía al proceso con ID igual a PID.
  • Si PID es cero, la señal se envía a todos los procesos en el grupo de procesos actual. En otras palabras, la señal se envía a todos los procesos que pertenecen al shell GID que invocó el comando kill Utilice el ps -efj para ver los ID de grupo de procesos (GID).
  • Si PID es igual a -1, la señal se envía a todos los procesos con el mismo UID que el usuario que invoca el comando. Si el usuario que está invocando es root, la señal se envía a todos los procesos excepto a init y al proceso de kill
  • Si PID es menor que -1, la señal se envía a todos los procesos en el grupo de procesos y con GID igual al valor absoluto de PID.

Los usuarios habituales pueden enviar señales a sus propios procesos, pero no a los que pertenecen a otros usuarios, mientras que el usuario root puede enviar señales a los procesos de otros usuarios.

Matar procesos usando el comando Matar

kill un proceso con el comando kill, primero debe encontrar el número de identificación del proceso (PID). Puede hacer esto usando diferentes comandos, como top, ps, pidof y pgrep.

Suponga que el navegador Firefox no ha respondido y necesita detener el proceso de Firefox. Para encontrar los PID del navegador, use el comando pidof

pidof firefox

El comando imprimirá los ID de todos los procesos de Firefox:

6263 6199 6142 6076

Una vez que conozca los números de proceso, puede eliminarlos a todos enviando la señal TERM

kill -9 2551 2514 1963 1856 1771

En lugar de buscar PID y luego matar procesos, puede combinar los comandos anteriores en uno:

kill -9 $(pidof firefox)

Recargar procesos usando el comando Kill

Otro caso de uso común del kill es enviar la HUP, que le dice a los procesos que recarguen su configuración.

Por ejemplo, para recargar Nginx, debe enviar una señal al proceso principal. El ID de proceso del proceso maestro de Nginx se puede encontrar en el nginx.pid, que normalmente se encuentra en el /var/run.

Utilice el cat para encontrar el PID principal:

cat /var/run/nginx.pid
30251

Una vez que encuentre el PID principal, vuelva a cargar la configuración de Nginx escribiendo:

sudo kill -1 30251

El comando anterior debe ejecutarse como root o usuario con privilegios sudo.

Conclusión

El kill se usa para enviar una señal a los procesos. La señal más utilizada es SIGKILL o -9, que finaliza los procesos indicados.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.