Cómo matar procesos con Kill Killall y pkill en Linux

27 feb 2021 3 min di lettura
Cómo matar procesos con Kill Killall y pkill en Linux
Indice dei contenuti

Puede suceder que una aplicación se cuelgue, incluso si intenta reiniciarla, no sucede nada. La solución es terminar o matar el proceso.

Afortunadamente, existen varias utilidades en Linux que le permiten eliminar los procesos defectuosos.

En este artículo, le mostraremos cómo usar los kill, killall y pkill para matar un proceso en Linux.

La principal diferencia entre estas herramientas es que kill termina los procesos según el número de identificación del proceso (PID), mientras que los pkill killall y pkill terminan los procesos en ejecución según sus nombres y otros atributos.

Los usuarios habituales pueden utilizar Kill para sus propios procesos, pero no los que pertenecen a otros usuarios, mientras que el usuario root puede matar todos los procesos.

Matar las señales del sistema de comando

kill, killall y pkill envían una determinada señal a procesos o grupos de procesos específicos. Cuando no se especifica ninguna señal, cada instrumento envía 15 ( TERM ).

Las señales más utilizadas son:

  • 1 (-HUP): para recargar un proceso.
  • 9 (-KILL): para matar un proceso.
  • 15 (-TERM): para detener correctamente un proceso.

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

  • usando el número (por ejemplo, -1)
  • con el prefijo "SIG" (por ejemplo, -SIGHUP)
  • sin el prefijo "SIG" (por ejemplo, -HUP).

Utilice la -l para enumerar todas las señales disponibles:

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

O:

killall -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
 CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

Los pasos descritos a continuación funcionarán en todas las distribuciones de Linux.

Matar procesos usando el comando Matar

kill un proceso con el comando kill, primero debe encontrar el PID del proceso. 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 el ID del proceso, use el comando pidof

pidof firefox

El comando imprimirá todos los procesos de Firefox:

2551 2514 1963 1856 1771

Una vez que sepa que Firefox procesa los PID para terminarlos, envíe la señal TERM

kill -9 2551 2514 1963 1856 1771

Mata procesos usando el comando killall

El killall mata todos los programas que coinciden con un nombre específico.

Utilizando el mismo escenario que antes, puede finalizar el proceso de Firefox escribiendo:

killall -9 firefox

killall acepta varias opciones, como enviar señales a los procesos propiedad de un usuario en particular, hacer coincidir los nombres de los procesos con las expresiones regulares y el tiempo de creación. Puede obtener una lista de todas las opciones escribiendo killall (sin argumentos) en su terminal.

Por ejemplo, para finalizar todos los procesos que se ejecutan como usuario alice, ejecute el siguiente comando:

sudo killall -u alice

Mata procesos usando el comando pkill

pkill termina los procesos que coinciden con el patrón dado en la línea de comando:

pkill -9 firefox

No es necesario que el nombre del proceso sea una coincidencia exacta.

Con pkill también puede enviar una señal a los procesos propiedad de un usuario en particular. Para matar solo los procesos de Firefox propiedad del usuario Alice, escriba:

pkill -9 -u alice firefox

Conclusión

Terminar programas que no responden usando los kill, killall y pkill es una tarea fácil. Solo necesita saber el nombre del proceso o PID.

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.