Androide

Cómo matar un proceso en Linux

Matar Procesos En Linux

Matar Procesos En Linux

Tabla de contenido:

Anonim

¿Alguna vez ha enfrentado la situación en la que lanzó una aplicación y, de repente, mientras la usa, deja de responder y se bloquea inesperadamente? Intenta iniciar la aplicación nuevamente, pero no sucede nada porque el proceso de la aplicación original nunca se cierra por completo.

Bueno, nos ha sucedido a todos en algún momento, ¿no? La solución es terminar o finalizar el proceso de solicitud. ¿Pero cómo?

Afortunadamente, hay varias utilidades en Linux que le permiten eliminar procesos errantes., le mostraremos cómo usar los comandos kill , killall y pkill para finalizar un proceso en Linux.

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

Los usuarios normales pueden matar sus propios procesos, pero no los que pertenecen a otros usuarios, mientras que el usuario raíz puede matar todos los procesos.

Señales de muerte del sistema

kill , killall y pkill envían una señal dada a procesos específicos o grupos de procesos. Cuando no se especifica ninguna señal, cada herramienta 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 con gracia un proceso.

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

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

Use la opción -l para enumerar todas las señales disponibles:

kill -l # or killall -l

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

Terminar procesos usando el comando kill

Para finalizar 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 .

Supongamos que el navegador Firefox no responde y necesita eliminar el proceso de Firefox. Para encontrar la 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

Finalización de procesos con el comando killall

El comando killall termina todos los programas que coinciden con un nombre especificado.

Usando el mismo escenario que antes, puede matar el proceso de Firefox escribiendo:

killall -9 firefox

killall acepta varias opciones, como el envío de señales a procesos propiedad de un usuario determinado, la coincidencia de nombres de procesos con expresiones regulares y el tiempo de creación. Puede obtener una lista de todas las opciones escribiendo killall (sin ningún argumento) en su terminal.

Por ejemplo, para finalizar todos los procesos que se ejecutan como un usuario "sara", debe ejecutar el siguiente comando:

sudo killall -u sara

Finalización de procesos con el comando pkill

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

pkill -9 firefox

El nombre del proceso no tiene que ser una coincidencia exacta.

Con pkill también puede enviar una señal a los procesos que son propiedad de un usuario determinado. Para eliminar solo los procesos de firefox propiedad del usuario "sara", debe escribir:

pkill -9 -u sara firefox

Conclusión

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

matar terminal