Comandos A-Z

Cómo eliminar o finalizar un proceso de Linux La guía definitiva

Cómo eliminar o finalizar un proceso de Linux La guía definitiva

Los sistemas operativos de multiprocesamiento como Linux y BSD emplean varios métodos para maximizar la utilización de la CPU. Un proceso es simplemente un programa en ejecución. Dado que habrá más de un proceso de Linux ejecutándose en un momento dado, la gestión de procesos en Linux es extremadamente crucial. Los usuarios a menudo enfrentan problemas como la limitación de recursos de la CPU cuando ejecutan demasiados programas. Situaciones como esta surgen cuando la CPU no puede manejar el creciente número de procesos. Aunque esto no depende por completo de la potencia de su CPU, lidiar con procesos colgados o zombies puede ser bastante frustrante. Para ayudarlo a mitigar estos sucesos, describimos algunas formas estándar de eliminar estos procesos.

Dominar la gestión de procesos que no responden en Linux


Aprenderá varias formas de finalizar un proceso de Linux que no responde en absoluto. Si viene de Windows, es posible que esté familiarizado con Ctrl + Alt + Delete. Del mismo modo, los usuarios de Mac tienen el método Comando + Opción + Escape para matar procesos congelados. Linux es mucho más versátil que sus contrapartes y ofrece más de un método para abordar procesos muertos / que no responden.

Diferentes métodos para acabar con un proceso de Linux muerto


Principalmente describiremos dos métodos para matar procesos zombies. Usaremos la terminal de Linux para el primer método. Para esto, primero necesitaremos identificar la identificación del proceso. Una vez obtenido con éxito, podemos usar este PID para matar el programa enviando señales específicas a ese PID.

También aprenderá cómo realizar estos trabajos de eliminación de Linux desde la interfaz gráfica de usuario o la ventana X. Vamos a aprovechar el 'Monitor de sistema' aplicación disponible en Ubuntu para esto. Aunque esta es una aplicación GNOME, hay herramientas similares disponibles para otros entornos de escritorio Linux.

Terminar un proceso que no responde desde la línea de comandos


Hay varias herramientas para terminar un proceso que no responde o colgado desde la línea de comando, que incluyen matar, pkill, y Mátalos a todos. Estos comandos funcionan enviando señales específicas a estos procesos que no responden. Vas a necesitar la identificación del proceso o PID información para que pueda enviarles la señal de terminación requerida.

El PID o ID de proceso es un número único que identifica un proceso. Estos son creados por el kernel de Linux durante el tiempo de ejecución, y el programador de procesos controla sus actividades de CPU. Entonces, cada vez que invoca una aplicación, el kernel primero generará los procesos necesarios y les asignará estos valores PID únicos. Puede haber varios PID asociados con un proceso. Además, cada proceso tiene un proceso principal único con un PPID (ID de proceso principal) único.

Entonces, si puede encontrar este PPID, entonces podrá enviar una señal de interrupción utilizando programas diseñados para este propósito. A continuación, aprenderá cómo verificar los procesos en ejecución en Linux e identificar su PPID desde la terminal.

Descubra la información de PPID


Puede averiguar el PPID de un proceso utilizando varios comandos de gestión de procesos en Linux, como pidof, pstree, y pgrep. Examinemos uno por uno y veamos cómo obtener el PID de un proceso de Linux.

Método 1: uso del comando ps


El comando ps en Linux muestra todos los procesos en ejecución junto con otra información relacionada con el proceso, como el PID en la terminal. Podemos usar este comando para enumerar todos los procesos y luego filtrar un proceso específico usando los comandos grep de Linux. Debería mostrarnos la información de identificación del proceso que nos interesa.

$ nano> / dev / null &
$ ps aux | grep "nano"

Primero, hemos invocado un editor de texto de Linux en segundo plano. Luego usamos el comando ps junto con el comando grep para averiguar el PPID de este editor. La salida puede contener varios identificadores de proceso, pero solo nos interesa el primero ya que es nuestro PPID. También podemos usar el comando awk de Linux para encontrar esta información, como se muestra a continuación.

$ ps aux | awk '/ nano / print $ 2'

Este comando es más flexible ya que suprime toda la información irrelevante. Solo mostrará la información PPID que estamos buscando.

Método 2: uso del comando pstree


El comando pstree nos proporciona una vista en forma de árbol de todos los procesos en ejecución. Proporciona una vista gráfica de la lista de tareas de Linux desde la ventana del terminal. Puede ver el PPID así como toda la información PID de un proceso usando este comando. Consulte los ejemplos a continuación para aprender cómo aprovechar pstree para encontrar el PPID de un proceso específico.

$ nano> / dev / null &
$ pstree -p | grep 'nano' $ pstree -p | awk '/ nano / print $ NF'

Primero, hemos generado un proceso en segundo plano usando el primer comando. El segundo comando luego recupera el PPID de este proceso usando el comando grep en Linux. Finalmente, el tercer comando nos muestra cómo recuperar este valor usando el comando awk.

Método 3: usar el comando pgrep


El comando pgrep es uno de los comandos de gestión de procesos más fáciles de Linux. Verifica la lista de todos los procesos en ejecución e imprime el PPID de un proceso dado en la salida estándar o en el terminal en nuestro caso. Funciona realizando una coincidencia de expresiones regulares y es muy adecuado para escribir scripts de shell de Linux.

$ nano> / dev / null &
$ pgrep 'nano'

Hemos generado el proceso nano de manera similar a los ejemplos anteriores. Entonces hemos obtenido su PPID usando el comando pgrep. Una vez que obtenemos este valor, podemos realizar el trabajo de eliminación de Linux muy fácilmente.

Método 4: usar el comando pidof


El comando pidof es otra forma simple pero útil de determinar el PPID de un proceso de Linux. Muestra tanto el PPID como todos los demás PID asociados con un proceso. Consulte el examen a continuación para ver cómo usar esto en la práctica.

$ nano> / dev / null &
$ pidof nano $ pidof -s nano

Al usar el comando pidof para verificar los procesos en ejecución en Linux, a menudo verá varios PID. Por lo general, en tales casos, el primer o el último número es el PPID, dependiendo de si están en orden ascendente o descendente. Puedes usar el -s opción de pidof para mitigar esto. Mostrará solo el valor PPID.

Método 5: usar el comando superior


El comando superior proporciona una vista en tiempo real de todos los procesos en ejecución en sistemas operativos similares a Unix. Puede usar esto para mostrar la lista de tareas de Linux en su terminal y encontrar la información PID de un proceso específico.

$ top

Utilice los siguientes comandos para recuperar el PPID de un proceso en particular de la salida del comando superior.

$ nano> / dev / null &
$ top -n1 -b | grep 'nano' $ top -n1 -b | awk '/ nano / print $ 1'

Dado que top proporciona salida en tiempo real en lugar de descargar datos estáticos al terminal, hemos utilizado el -n1 y -B opción para imprimir la salida estática. Luego, puede recuperar la información PPID utilizando el comando grep o el comando awk en Linux.

Elimine el proceso de Linux que no responde


Puede utilizar cualquiera de los métodos anteriores para recuperar el PPID del proceso que no responde. Una vez que obtenga esto, es hora de matar el proceso por completo. Hay varios comandos que nos permiten hacer esto, como matar, pkill, y Mátalos a todos. Veremos cómo funcionan uno a uno en los siguientes apartados.

Método 1: uso del comando kill


El comando kill es ampliamente utilizado por los administradores de Linux debido a su simplicidad y acciones robustas. Toma el PID del proceso y una señal. El kernel mata / detiene la ejecución del proceso en función de esta señal. Puede usar el siguiente comando para ver todas las señales disponibles para el comando kill.

$ matar -l

Como puede ver, kill ofrece 64 señales diferentes. Sin embargo, solo discutiremos dos de ellos en esta guía. Estos son la señal 9 (SIGKILL) y la señal 15 (SIGTERM). SIGTERM o la señal 15 es el método seguro para matar un proceso que no responde. SIGKILL o la señal 9, por otro lado, la fuerza mata un proceso de Linux.

$ matar -9 8631 $ matar -KILL 8631

Los comandos anteriores son equivalentes y forzarán la eliminación del proceso que tiene el PID 8631. Ese es el PPID del proceso 'nano' en mi sistema. Reemplace esto con el PID del proceso que no responde en su sistema.

$ matar -15 8631 $ matar -TERM 8631

Los comandos anteriores también son equivalentes y matarán el proceso con gracia. Es por eso que puede tomar algún tiempo antes de que se elimine el proceso. Además, es posible que deba agregar sudo antes del comando kill si el proceso es propiedad de un usuario diferente.

Método 2: uso del comando pkill


El comando pkill es uno de los comandos de gestión de procesos más versátiles de Linux. Nos permite eliminar un proceso que no responde según su nombre, PID, propietario y otros atributos de tiempo de ejecución. Es una herramienta perfecta para usuarios principiantes o personas que no están familiarizadas con muchos comandos de terminal estándar.

$ pkill nano $ pkill 8631 $ pkill -e nano $ pkill -f nano

Puede usar cualquiera de los comandos pkill anteriores para matar un proceso zombie / que no responde en Linux. Utilizar el -mi opción si desea una confirmación sobre el trabajo de eliminación de Linux. El comando pkill también permite a los usuarios enviar señales de terminación específicas.

Método 3: uso del comando killall


El comando killall permite a los usuarios matar procesos que no responden en función de sus nombres. Es más fácil de usar, pero puede plantear problemas si no se tiene cuidado. Dado que killall termina los procesos en función de los nombres, siempre existe la posibilidad de que termine matando un proceso por casualidad. Por ejemplo, si hay diferentes versiones de nano disponibles en su sistema, el primer ejemplo las matará a todas.

$ killall nano $ killall - verdoso nano $ killall - nano interactivo $ killall - señal KILL nano

El primer ejemplo muestra el uso básico del comando killall en Linux. El segundo comando informará si el trabajo de finalización fue exitoso o no, y el tercer comando pedirá confirmación al usuario antes de finalizar el proceso. Por defecto, killall usa la señal SIGTERM para matar procesos. Sin embargo, puede especificar la señal manualmente, como se muestra en el último ejemplo.

Método 4: uso de prácticos one-liners


La verdadera belleza de Linux radica en el hecho de que permite a los usuarios crear combinaciones de comandos sofisticadas en función de sus necesidades. Para demostrar esto, hemos esbozado algunas frases ingeniosas en la sección.

$ nano> / dev / null &
$ kill -9 $ (pgrep nano) $ ps aux | grep -e 'nano' | awk 'imprimir $ 2' | xargs matan -9

En el primer ejemplo, hemos utilizado la interpolación de shell para pasar el PID del proceso 'nano' al comando kill de Linux. El segundo ejemplo utiliza varios comandos de terminal diarios y redireccionamiento de E / S para finalizar el proceso. Puede seleccionar sus propias frases ingeniosas una vez que se sienta cómodo con la terminal de Linux.

Método 5: matar varios procesos utilizando scripts de shell de Linux


A veces, los usuarios pueden querer terminar más de un proceso. Podemos automatizar fácilmente tales tareas escribiendo simples scripts de shell. Si está interesado en este tema, consulte nuestra guía anterior sobre scripts de shell de Linux. El siguiente script recuperará el PPID de los procesos que desea matar y luego los terminará usando señales de interrupción.

$ nano proc-killer.sh
#!/ usr / bin / env bash para pro en "$ @" do pid = $ (pgrep $ pro | head -1) echo $ pid comm = "kill -9 $ pid" eval $ comm done

Ahora, guarde este archivo y agregue el permiso de ejecución emitiendo el siguiente comando.

$ chmod + x proc-killer.sh

Ahora puede pasar a este script el nombre de los procesos que desea terminar.

PS ./ proc-killer.sh nano gedit vlc

Simplemente reemplace los argumentos con los nombres de los procesos de Linux que no responden en su sistema.

Terminar un proceso que no responde desde la GUI


También puede finalizar un proceso que no responde desde la interfaz gráfica de usuario o la ventana X. Discutimos dos métodos para hacer esto en la siguiente sección.

Método 1: uso de la aplicación xkill


Las distribuciones modernas de Linux utilizan la ventana gráfica X para proporcionar a los usuarios una experiencia gráfica elegante. Existe una herramienta simple llamada xkill que permite a los usuarios cerrar una ventana GUI que no responde. Es posible ya que, en Linux, la ventana de título de una aplicación está separada de la propia aplicación.

Simplemente vaya a su emulador de terminal Linux y escriba xkill. Transformará el cursor del mouse en un botón X, que se puede usar para eliminar cualquier ventana de la GUI.

$ xkill

Ahora, todo lo que necesita hacer es hacer clic en la barra de la ventana de la aplicación que no responde, y se eliminará y desaparecerá instantáneamente.

Método 2: uso de la aplicación System Monitor en Ubuntu


La mayoría de las distribuciones principales de Linux vienen con algún tipo de herramientas de monitoreo de GUI que permiten a los usuarios terminar gráficamente un proceso de Linux suspendido. Por ejemplo, la aplicación System Monitor en Ubuntu nos permitirá terminar un proceso que no responde de manera intuitiva. Simplemente puede seleccionar el proceso muerto de la lista de procesos y eliminarlo haciendo clic con el botón derecho en el proceso y seleccionando la opción de eliminación.

Hay muchas más alternativas a esta aplicación, y estamos seguros de que podrá encontrar fácilmente una para su distribución o entorno de escritorio.

Pensamientos finales


Dado que la gestión de procesos en Linux es muy versátil, los usuarios a menudo se sienten frustrados cuando tratan con procesos que no responden. Es por eso que nuestros editores han descrito todas las formas posibles de terminar un proceso de Linux inactivo en esta guía. Después de leer esto, debería poder eliminar cualquier proceso que no responda desde la línea de comandos o desde la GUI. También puede usar cualquiera de nuestros comandos de una sola línea para lidiar con tales molestias en el menor tiempo posible. Además, incluso puede eliminar más de un proceso utilizando nuestro sencillo script de shell. Entonces, con suerte, obtuvo la información que buscaba de nuestra guía.

Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...