Cómo matar un proceso en Linux

Todos hemos tenido esos días en que nuestra computadora funciona excepcionalmente lenta y tartamudea al realizar incluso las tareas básicas. En Windows, solo tiene el Administrador de tareas de Windows para inspeccionar y eliminar procesos que no son tan importantes pero que consumen enormes cantidades de memoria. Sin embargo, en Linux, tiene todo un arsenal de comandos y herramientas GUI para administrar estas tareas. En este artículo, mostraremos algunos métodos sencillos de línea de comandos (CLI), así como métodos de GUI sobre cómo eliminar un proceso en Linux.

Terminar proceso en Linux (2023)

Pero antes de sumergirnos en el mundo de la gestión de procesos en Linux, comprendamos qué es exactamente un proceso y qué es un ID de proceso en los sistemas Linux.

¿Qué son los procesos en Linux?

En Linux, cada instancia de un programa actualmente en ejecución se conoce como «proceso», mientras que cada archivo ejecutable se conoce como programa. Cuando se ejecuta cualquier programa, se crea un proceso y a cada proceso se le asigna un número de identificación único de 5 dígitos conocido como «ID de proceso». Cuando un proceso ha terminado de ejecutarse o se termina por la fuerza, su ID de proceso se asigna al siguiente proceso en la línea.

Matar proceso a través de la línea de comandos en Linux

Aunque usar la terminal a veces puede parecer intimidante en comparación con el uso de herramientas GUI para tareas básicas, administrar varios procesos se vuelve mucho más fácil una vez que comprende los comandos y sus diversas opciones.

Señales de terminación

Cuando intenta eliminar un proceso desde la GUI o la CLI en Linux, el kernel envía una señal de terminación al proceso. El proceso actúa en consecuencia, dependiendo de la señal recibida. A cada una de estas señales se le asigna un número específico para que el programa las entienda rápidamente. Existen numerosos tipos de señales de terminación, pero aquí solo hemos explicado las esenciales:

SeñalValor numéricoDescripciónSIGHUP1Significa ‘Signal Hangup’
Se envía cuando el terminal está cerrado.SIGINT2Significa ‘Signal Interrupt’
Se envía cuando el usuario finaliza el proceso. SIGKILL9Significa ‘Signal Kill’
Se envía cuando necesita salir de un proceso inmediatamente. SIGTERM15Significa ‘Signal Termination’
Se envía cuando se necesita terminar un proceso y liberar los recursos consumidosSIGSTOP19 – para ARM, x86
17 – para ALFA
23 – para MIPS
24 – para PA-RISCI significa ‘Señal de parada’
Se envía cuando necesitas pausar un proceso y reanudarlo más tarde. Las señales más utilizadas son SIGKILL (9) y SIGTERM (15).

  Cómo comprobar la versión de Python en Windows, Linux y macOS [2023]

Identificar los ID de proceso

Antes de finalizar un proceso, debe conocer algunos detalles del proceso, como la ID del proceso, el tiempo de ejecución, etc. Para conocer los detalles de un proceso, use el comando ps:

PD

Con el comando ps, debe buscar el proceso desplazándose y anotando su nombre, lo que podría ser engorroso. En su lugar, incluso puede usar el comando grep con el comando ps en una canalización, como se muestra a continuación:

pd | grep

Para simplificar las cosas, hay un comando separado que muestra solo la identificación del proceso de cualquier proceso en ejecución que necesite saber. La sintaxis para usar el comando pidof es:

pidof

Terminar el proceso usando el comando matar

Una vez que haya anotado la ID del proceso que desea finalizar, el comando más común utilizado para finalizar programas en su sistema Linux es el comando kill. La sintaxis para usar el comando kill es:

matar

El parámetro es opcional y el comando kill envía la señal SIGTERM (15) por defecto. Puede enviar cualquier otra señal por su valor numérico o el nombre real de la señal de la tabla anterior.

Terminar el proceso usando el comando pkill

Si cree que buscar la identificación del proceso es un inconveniente, puede usar el comando pkill. Busca los procesos que coinciden con un patrón y luego lo elimina. La sintaxis para usar el comando pkill es:

pkill

Algunas de las opciones comunes para emparejar con el comando pkill son:

OptionDescription-nSelecciona solo los procesos más recientes que coinciden con el id del proceso-uSelecciona los procesos propiedad de un usuario en particular-xSelecciona los procesos que coinciden exactamente con el patrón

Esto es particularmente importante cuando varios usuarios están trabajando en diferentes instancias del mismo programa en el mismo sistema y una de las instancias comienza a tener un comportamiento inesperado. Por ejemplo, en la siguiente captura de pantalla, estamos eliminando la instancia «gedit» propiedad del usuario ‘intel’ usando el comando pkill en Linux:

pkill-u intel gedit

Terminar el proceso usando el comando killall

El comando killall funciona de manera similar al comando kill, pero elimina todos los procesos que coinciden con el nombre del proceso, independientemente del usuario. Por defecto, envía la señal SIGTERM si no se especifica lo contrario. Una cosa interesante a tener en cuenta es que el comando killall nunca puede matarse a sí mismo, pero puede terminar otras instancias del comando killall. La sintaxis para usar el comando killall es:

killall

Algunas de las opciones para emparejar con el comando killall son:

OptionDescription-rInterpreta el nombre_del_proceso como un patrón regex y luego elimina los procesos que coinciden con el patrón-u elimina el proceso especificado propiedad de un propietario especificado.-o Elimina los procesos especificados más antiguos (iniciados antes) que una hora específica.-y Elimina los procesos especificados más jóvenes ( comenzó después) de la hora específica.

El comando killall puede ser útil para terminar una serie del mismo proceso o incluso todos los procesos que pertenecen a un propietario específico. Aquí, en nuestro ejemplo, estamos matando todos los procesos de «dormir durante 500 segundos» usando el comando killall en Linux:

  Cómo instalar SpeedCrunch en Linux

killall -v dormir

Terminar el proceso de Linux usando el comando top/htop

Este método de eliminación de procesos es útil cuando no tiene idea de qué procesos consumen el máximo de recursos. En ambos comandos, puede navegar a través de todos los procesos en ejecución o incluso procesos zombis y puede finalizarlos rápidamente. Para usar el comando superior para monitorear sus recursos, use la sintaxis en la Terminal:

arriba

Comprender la salida:

La salida principal del comando superior se divide en columnas que son:

  • PID: muestra el ID del proceso en ejecución
  • Usuario: muestra el propietario del proceso.
  • PR: muestra el valor de prioridad del proceso asignado por el sistema operativo
  • NI: muestra los valores agradables que son como asignar valores espaciados por el usuario para controlar manualmente la prioridad de una tarea.
  • VIRT: muestra la cantidad de memoria virtual utilizada por el proceso.
  • RES: muestra la cantidad de memoria física utilizada por el proceso
  • SHR: muestra la cantidad de memoria compartida por otros procesos
  • S – muestra el estado actual del proceso que puede ser:
    • D – sueño ininterrumpido
    • R- corriendo
    • S- durmiendo
    • T – detenido
    • Z-zombi
  • %CPU: muestra la cantidad de CPU utilizada por el proceso en porcentaje
  • %MEM: muestra la cantidad de RAM utilizada por el proceso en porcentaje
  • TIME+: muestra el tiempo total de ejecución del proceso
  • Comando: muestra qué comando se invocó para el proceso.
  • Si no conoce el ID de proceso de la tarea que desea eliminar, navegue por la lista con las teclas de flecha o busque el nombre del proceso en la tabla de procesos en Linux.

    Para buscar el nombre del proceso, presione ‘L’ en el teclado y escriba el nombre del proceso que desea buscar. Una vez que encuentre el proceso nefasto, presione ‘k’ en el teclado para terminar el proceso. Ahora, ingrese el ID del proceso o déjelo en el proceso resaltado actualmente y presione ‘ENTRAR’. Luego, ingrese la señal de terminación y luego presione ‘ENTER’ para terminar el programa. Para volver a la terminal, presione ‘q’ en el teclado.

    Aunque el comando superior muestra detalles como la identificación del proceso, el consumo de memoria y más para todos los procesos en ejecución, no es adecuado para principiantes, ya que no muestra ninguna asignación de teclas ni cómo usarlo. Por otro lado, el comando htop tiene una interfaz más fácil de usar, incluso para una herramienta de línea de comandos. Además, muestra todos los detalles en una vista separada, por lo tanto, no abarrota la ventana de la terminal. No viene preinstalado en la mayoría de las distribuciones, y debe usar el siguiente comando para instalar htop en Linux:

    sudo apt install -y htop

    Para usar htop para administrar procesos en Linux, use el siguiente comando:

    arriba

    Para finalizar un programa, navegue hasta el nombre del proceso que desea finalizar, presione ‘F9’ y luego presione Intro. Si necesita buscar y eliminar cualquier programa, presione ‘F3’ en el teclado, escriba el nombre y presione Enter. El nombre del proceso se resaltará, presione F9 y luego presione Entrar en el teclado para finalizar el proceso.

      Cómo deshabilitar las actualizaciones de aplicaciones en Arch Linux

    Matar un proceso a través del monitor del sistema en Linux

    Si cree que el método de la línea de comandos es difícil para usted, puede usar la herramienta de monitoreo del sistema integrada que está disponible en todas las distribuciones de Linux. Para saber cómo funciona, abra la herramienta del monitor del sistema desde el menú Aplicaciones y siga los pasos a continuación.

    1. Una vez que se abra la herramienta del monitor del sistema, verá tres pestañas en la parte superior denominadas: Procesos, Recursos y Sistema de archivos. Para administrar sus procesos, diríjase a la pestaña «Procesos». Aquí, verá todos sus procesos actualmente en ejecución. Presione ‘CTRL+F’ para buscar un nombre de proceso. Haga clic en el nombre del proceso que desea cancelar y haga clic en «Terminar proceso».

    2. Luego, recibirá un mensaje de confirmación si desea finalizar el proceso o no. Continúe y haga clic en el gran botón rojo «Finalizar proceso» para finalizar el proceso en Linux.

    Preguntas frecuentes

    ¿Cómo detengo todos los procesos en Linux?

    Si necesita detener todos los procesos (excepto el shell de inicio de sesión, init y los procesos específicos del kernel) para un usuario específico en Linux, use el comando pkill o el comando killall según la sintaxis:

    pkill -u

    killall -u

    Si necesita eliminar todos los procesos de todos los usuarios, incluido el sistema de inicio, presione las teclas ‘ALT + Prt Sc + o’ en el teclado.

    ¿Está bien terminar un proceso?

    Cuando cierra cualquier proceso en segundo plano no esencial o un proceso de usuario que consume mucha memoria del sistema, libera los recursos que ahora pueden utilizar otros procesos. Pero, antes de cerrar cualquier proceso, asegúrese de no estar matando un proceso esencial del sistema operativo.

    ¿Cuáles son los procesos en segundo plano en Linux?

    En Linux, los procesos en segundo plano son procesos que pueden ejecutarse sin la instancia de shell ni la intervención del usuario. Se pueden ver usando cualquiera de los comandos: top, htop, ps, etc.

    ¿Qué es un proceso zombie?

    Un proceso que ha sido eliminado por el usuario pero que aún ocupa memoria se conoce como proceso zombie.

    ¿Qué hace CTRL + Z en Linux?

    Cuando usa CTRL + Z en Linux, envía la señal SIGTSTP que suspende el proceso y lo envía en segundo plano. Cuando un proceso está en un estado suspendido en segundo plano, no puede eliminar el proceso hasta que vuelva a estar en primer plano.

    Elimina Procesos en Linux Fácilmente

    Matar los procesos que acaparan la memoria es una tarea bastante crucial que todo usuario debería aprender. En este artículo, hemos mostrado tanto el método de la línea de comandos, incluidos comandos como killall y pkill, como los métodos de la GUI para eliminar procesos en Linux. Incluso hemos detallado cómo usar herramientas populares como top y htop para administrar procesos en su PC con Linux. Si tiene algún problema al usar estas herramientas para eliminar un proceso, háganoslo saber en los comentarios a continuación.