Introducción a la terminal Linux - Matando Procesos, finalizar programas 003
Tabla de contenido:
- Comando
kill - Terminar procesos usando el comando
kill - Procesos de recarga utilizando el comando
kill - Conclusión
Linux es un gran y avanzado sistema operativo, pero no es perfecto. De vez en cuando, algunas aplicaciones pueden comenzar a comportarse de manera irregular 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 cierra por completo. La única solución es reiniciar el sistema o eliminar el proceso de la aplicación.
Hay varias utilidades que le permiten terminar procesos errantes con
kill
siendo el más utilizado.
Comando
kill
kill
es un shell incorporado en la mayoría de los shells derivados de Bourne, como Bash y Zsh. El comportamiento del comando es ligeramente diferente entre los shells y el ejecutable independiente
/bin/kill
.
Use el comando
type
para mostrar todas las ubicaciones en su sistema que contengan
kill
:
type -a kill
kill is a shell builtin kill is /bin/kill
El resultado anterior indica que el intérprete de comandos de shell tiene prioridad sobre el ejecutable independiente, y se usa cada vez que escribe
kill
. Si desea utilizar el binario, escriba la ruta completa al archivo
/bin/kill
., usaremos el Bash incorporado.
La sintaxis del comando
kill
toma la siguiente forma:
kill…
El comando
kill
envía una señal a procesos específicos o grupos de procesos, haciendo que actúen de acuerdo con 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): vuelve a cargar un proceso.9(KILL) - Mata un proceso.15(TERM) - Detén con gracia un proceso.
Para obtener una lista de todas las señales disponibles, invoque el comando con la opción
-l
:
kill -l

Las señales se pueden especificar de tres maneras diferentes:
- Usando el número (por ejemplo,
-1o-s 1). Usando el prefijo "SIG" (por ejemplo,-SIGHUPo-s SIGHUP). Sin el prefijo "SIG" (por ejemplo,-HUPo-s HUP).
Los siguientes comandos son equivalentes entre sí:
kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER
Los PID proporcionados al comando
kill
pueden ser uno de los siguientes:
- Si el
PIDes mayor que cero, la señal se envía al proceso con una ID igual alPID. Si elPIDes igual a 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 GID del shell que invocó el comandokill. Utilice el comandops -efjpara ver las ID de grupo de proceso (GID). SiPIDes 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 invoca es root, la señal se envía a todos los procesos excepto init y el proceso de interrupción en sí. SiPIDes menor que-1, la señal se envía a todos los procesos en el grupo de procesos eq con GID igual al valor absoluto de elPID
Los usuarios habituales pueden enviar señales a sus propios procesos, pero no los que pertenecen a otros usuarios, mientras que el usuario raíz puede enviar señales a los procesos de otros usuarios.
Terminar procesos usando el comando
kill
Para finalizar o eliminar 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
.
Supongamos que el navegador Firefox no responde y necesita eliminar el proceso de Firefox. Para encontrar los PID del navegador, use el comando
pidof
:
pidof firefox
El comando imprimirá las ID de todos los procesos de Firefox:
6263 6199 6142 6076
Una vez que conozca los números de los procesos, puede terminarlos todos enviando la señal
TERM
:
kill -9 2551 2514 1963 1856 1771
En lugar de buscar PID y luego finalizar los procesos, puede combinar los comandos anteriores en uno:
Procesos de recarga utilizando el comando
kill
Otro caso de uso común para
kill
es enviar la señal
HUP
, que le dice a los procesos que recarguen su configuración.
Por ejemplo, para volver a cargar Nginx, debe enviar una señal al proceso maestro. El ID del proceso del proceso maestro de Nginx se puede encontrar en el archivo
nginx.pid
, que normalmente se encuentra en el directorio
/var/run
.
Use el comando
cat
para encontrar el PID maestro:
cat /var/run/nginx.pid
30251
Una vez que encuentre el PID maestro, vuelva a cargar la configuración de Nginx escribiendo:
sudo kill -1 30251
El comando anterior debe ejecutarse como root o usuario con privilegios de sudo.
Conclusión
El comando
kill
se usa para enviar una señal a los procesos. La señal más utilizada es
SIGKILL
o
-9
, que termina los procesos dados.
Es difícil matar a un iPhone de Apple 3G
El nuevo teléfono multimedia de Apple es el Timex de los teléfonos. Así es como se llevó el maullido de PC World y siguió llamando (hasta que literalmente lo tiramos al suelo).
Apple puede 'matar' aplicaciones de iPhone de forma remota, ¿o sí?
Apple "kill switch" encontrado en iPhone 2.0 OS causa agite mientras los desarrolladores reflexionan sobre por qué está allí.
Cómo matar un proceso en Linux
En este tutorial, le mostraremos cómo usar los comandos kill, killall y pkill para finalizar un proceso en Linux.







