¿Está interesado en aprender más sobre la administración de Linux? Explore estos cursos de formación sobre Linux.
- Introducción a Linux (LFS101x) – Gratis
- Essentials of Linux System Administration (LFS201)
Aprenda a eliminar procesos errantes en este tutorial de nuestros archivos.
Imagine esto: Ha iniciado una aplicación (ya sea desde su menú de escritorio favorito o desde la línea de comandos) y comienza a usar esa aplicación iniciada, solo para que se bloquee, deje de funcionar o muera inesperadamente. Intentas ejecutar la aplicación de nuevo, pero resulta que la original nunca se apaga completamente.
¿Qué haces? Matas el proceso. ¿Pero cómo? Lo creas o no, tu mejor apuesta a menudo se encuentra dentro de la línea de comandos. Afortunadamente, Linux tiene todas las herramientas necesarias para empoderarlo a usted, el usuario, para matar un proceso errante. Sin embargo, antes de iniciar inmediatamente ese comando para matar el proceso, primero debe saber cuál es el proceso. ¿Cómo te encargas de esta tarea en capas? En realidad, es bastante simple once una vez que conoces las herramientas a tu disposición.
Permítanme presentarles dichas herramientas.
Los pasos que voy a describir funcionarán en casi todas las distribuciones de Linux, ya sea un escritorio o un servidor. Me ocuparé estrictamente de la línea de comandos, así que abra su terminal y prepárese para escribir.
Localizar el proceso
El primer paso para eliminar el proceso que no responde es localizarlo. Hay dos comandos que utilizo para localizar un proceso: top y ps. Top es una herramienta que todo administrador debe conocer. Con top, obtienes una lista completa del proceso que se está ejecutando actualmente. Desde la línea de comandos, emita arriba para ver una lista de los procesos en ejecución (Figura 1).
De esta lista verá información bastante importante. Digamos, por ejemplo, que Chrome ya no responde. De acuerdo con nuestra pantalla superior, podemos discernir que hay cuatro instancias de Chrome que se ejecutan con los identificadores de proceso (PID) 3827, 3919, 10764 y 11679. Esta información será importante para tener con un método particular de matar el proceso.
Aunque top es increíblemente práctico, no siempre es el medio más eficiente de obtener la información que necesita. Digamos que sabes que el proceso de Chrome es lo que necesitas matar, y no quieres tener que echar un vistazo a la información en tiempo real que ofrece top. Para ello, puede utilizar el comando ps y filtrar la salida a través de grep. El comando ps informa de una instantánea de un proceso actual y grep imprime líneas que coinciden con un patrón. La razón por la que filtramos ps a través de grep es simple: Si emite el comando ps por sí solo, obtendrá una lista de instantáneas de todos los procesos actuales. Solo queremos la lista asociada con Chrome. Por lo tanto, este comando se vería como:
ps aux | grep chrome
Las opciones auxiliares son las siguientes:
-
a = mostrar procesos para todos los usuarios
-
u = mostrar el usuario/propietario del proceso
-
x = también mostrar procesos no conectados a un terminal
La opción x es importante cuando busca información sobre una aplicación gráfica.
Cuando emitas el comando anterior, se te dará más información de la que necesitas (Figura 2) para matar un proceso, pero a veces es más eficiente que usar top.
Matar el proceso
Ahora llegamos a la tarea de matar el proceso. Tenemos dos piezas de información que nos ayudarán a acabar con el proceso errante:
-
nombre del Proceso
-
IDENTIFICADOR de Proceso
el Que va a determinar el comando que se utiliza para la terminación. Hay dos comandos utilizados para matar un proceso:
-
matar – Matar un proceso por ID
-
matar – Matar un proceso por nombre
También hay diferentes señales que se pueden enviar a ambos comandos de matar. La señal que envíe estará determinada por los resultados que desee del comando kill. Por ejemplo, puede enviar la señal HUP (colgar) al comando kill, que reiniciará efectivamente el proceso. Esta es siempre una sabia elección cuando necesita que el proceso se reinicie inmediatamente (como en el caso de un demonio). Puede obtener una lista de todas las señales que se pueden enviar al comando kill emitiendo kill-l. Encontrará un gran número de señales (Figura 3).
Las señales de desactivación más comunes son:
Signal Name |
Single Value |
Effect |
SIGHUP |
Hangup |
|
SIGINT |
Interrupt from keyboard |
|
SIGKILL |
Kill signal |
|
SIGTERM |
Termination signal |
|
SIGSTOP |
17, 19, 23 |
Stop the process |
Lo bueno de esto es que puede usar el Valor de la señal en lugar del Nombre de la señal. Para que no tenga que memorizar todos los nombres de las diversas señales.
Por lo tanto, ahora usemos el comando kill para eliminar nuestra instancia de chrome. La estructura para este comando sería:
kill SIGNAL PID
Donde SIGNAL es la señal a enviar y PID es el ID de proceso a matar. Ya sabemos, por nuestro comando ps, que los identificadores que queremos matar son 3827, 3919, 10764 y 11679. Así que para enviar la señal de muerte, emitimos los comandos:
kill -9 3827kill -9 3919kill -9 10764kill -9 11679
Una vez que hayamos emitido los comandos anteriores, todos los procesos de Chrome se habrán eliminado con éxito.
¡Tomemos el camino fácil! Si ya sabemos que el proceso que queremos matar se llama chrome, podemos hacer uso del comando killall y enviar la misma señal al proceso de la siguiente manera:
killall -9 chrome
La única advertencia al comando anterior es que puede que no capte todos los procesos de chrome en ejecución. Si, después de ejecutar el comando anterior, emite el comando ps aux|grep chrome y ve los procesos restantes en ejecución, lo mejor es volver al comando kill y enviar la señal 9 para finalizar el proceso mediante PID.
Terminar los procesos de forma fácil
Como puede ver, eliminar los procesos errantes no es tan difícil como podría haber pensado. Cuando termino con un proceso obstinado, tiendo a comenzar con el comando killall, ya que es la ruta más eficiente para la terminación. Sin embargo, cuando terminas con un proceso realmente combativo, el comando kill es el camino a seguir.
Aprenda más sobre Linux a través del curso gratuito «Introducción a Linux» de la Fundación Linux y edX.