Skip to main content

Cómo matar procesos usando Linux

Actualización 1 Instalar e Ingresar al Sistema de Gestión Escolar 2018 (Abril 2025)

Actualización 1 Instalar e Ingresar al Sistema de Gestión Escolar 2018 (Abril 2025)
Anonim

La mayoría de las veces, deseará que un programa finalice por sus propios medios o, si se trata de una aplicación gráfica, utilizando la opción de menú adecuada o utilizando la cruz en la esquina.

De vez en cuando se bloquea un programa, en cuyo caso necesitará un método para matarlo. También es posible que desee eliminar un programa que se ejecuta en segundo plano y que ya no necesita ejecutar.

Esta guía proporciona un método para eliminar todas las versiones de la misma aplicación que se ejecutan en su sistema.

Cómo usar el comando killall

El comando killall mata todos los procesos por nombre. Eso significa que si tiene tres versiones del mismo programa ejecutando el comando killall matará a los tres.

Por ejemplo, abra un pequeño programa como un visor de imágenes. Ahora abre otra copia del mismo visor de imágenes. Para mi ejemplo, he elegido Xviewer, que es un clon de Eye Of Gnome.

Ahora abre una terminal y escribe el siguiente comando:

Mátalos a todos

Por ejemplo, para eliminar todas las instancias de Xviewer, escriba lo siguiente:

killall xviewer

Las dos instancias del programa que has elegido para matar ahora se cerrarán.

Matar el proceso exacto

Killall puede producir resultados extraños. Bueno, aquí hay una razón por la cual. Si tiene un nombre de comando que tiene más de 15 caracteres, el comando killall solo funcionará en los primeros 15 caracteres. Por lo tanto, si tiene dos programas que comparten los mismos primeros 15 caracteres, ambos programas se cancelarán aunque solo quiera eliminar uno.

Para evitar esto, puede especificar el siguiente interruptor que solo eliminará los archivos que coincidan con el nombre exacto.

killall -e

Ignorar caso al matar programas

Para asegurarse de que el comando killall ignora el caso del nombre del programa que proporciona, use el siguiente comando:

killall -Ikillall - nuevo caso

Matar a todos los programas en el mismo grupo

Cuando ejecute un comando como el siguiente, se crearán dos procesos:

ps -ef | Menos

Un comando es para la parte ps -ef que enumera todos los procesos en ejecución en su sistema y la salida se canaliza al comando less.

Ambos programas pertenecen al mismo grupo que es bash.

Para eliminar ambos programas a la vez, puede ejecutar el siguiente comando:

killall -g

Por ejemplo, para eliminar todos los comandos que se ejecutan en un shell bash, ejecute lo siguiente:

killall -g bash

Por cierto, para enumerar todos los grupos en ejecución, ejecute el siguiente comando:

ps -g

Obtener confirmación antes de matar programas

Obviamente, el comando killall es un comando bastante poderoso y no quieres matar accidentalmente los procesos incorrectos.

Al usar el siguiente interruptor, se le preguntará si está seguro antes de finalizar cada proceso.

killall -i

Matar procesos que se han estado ejecutando durante una cierta cantidad de tiempo

Imagina que has estado ejecutando un programa y está tardando mucho más de lo que esperabas.

Puedes matar el comando de la siguiente manera:

killall -o h4

La h en el comando anterior representa horas.

También puede especificar cualquiera de los siguientes:

  • s - segundos
  • m - minutos
  • h - horas
  • d - dias
  • w - semanas
  • M - meses
  • y - años

Alternativamente, si desea eliminar los comandos que acaban de comenzar a ejecutarse, puede usar el siguiente interruptor:

killall -y h4

Esta vez, el comando killall eliminará todos los programas que se ejecuten durante menos de 4 horas.

No me digas cuando un proceso no es asesinado

De forma predeterminada, si intenta eliminar un programa que no se está ejecutando, recibirá el siguiente error:

nombre del programa: no se encontró ningún proceso

Si no quiere que le digan si no se encontró el proceso, use el siguiente comando:

killall -q

Usando expresiones regulares

En lugar de especificar el nombre de un programa o comando, puede especificar una expresión regular para que todos los procesos que coincidan con la expresión regular sean cerrados por el comando killall.

Para usar una expresión regular usa el siguiente comando:

killall -r

Matar programas para un usuario específico

Si desea finalizar un programa que está siendo ejecutado por un usuario específico, puede especificar el siguiente comando:

killall -u

Si desea eliminar todos los procesos de un usuario en particular, puede omitir el nombre del programa.

Espera a que Killall termine

De forma predeterminada, killall volverá directamente al terminal cuando lo ejecute, pero puede forzar a killall a esperar hasta que todos los procesos especificados se hayan cerrado antes de regresar a la ventana del terminal.

Para hacer esto ejecuta el siguiente comando:

killall -w

Si el programa nunca muere, killall también continuará viviendo.

Señales señales señales

Por defecto, el comando killall envía la señal SIGTERM a los programas para que se cierren y este es el método más limpio para matar programas.

Sin embargo, hay otras señales que puede enviar usando el comando killall y puede enumerarlas usando el siguiente comando:

killall -l

La lista devuelta será algo como esto:

  • HUP
  • EN T
  • DEJAR
  • ENFERMO
  • TRAMPA
  • ABRT
  • IOT
  • AUTOBÚS
  • FPE
  • MATAR
  • USR1
  • SEGV
  • USR2
  • TUBO
  • ALRM
  • TÉRMINO
  • STKFLT
  • CHLD
  • CONT
  • DETENER
  • TSTP
  • TTIN
  • TTOU
  • Urgir
  • XCPU
  • XFSZ
  • VTALRM
  • PROG
  • WYNCH
  • IO
  • PWR
  • SYS
  • NO USADO

Esa lista es extremadamente larga. Para leer acerca de lo que significan estas señales, ejecute el siguiente comando:

hombre 7 señal

En general, debe usar la opción SIGTERM predeterminada, pero si el programa se niega a morir, puede usar SIGKILL, lo que obliga al programa a cerrarse, aunque de forma no digna.

Otras formas de matar un programa

Hay otras 5 formas de eliminar una aplicación Linux como se resalta en la guía vinculada.

Sin embargo, para ahorrarle el esfuerzo de hacer clic en el enlace aquí hay una sección que muestra cuáles son esos comandos y por qué podría usar esos comandos sobre killall.

El primero es el comando kill. El comando killall, como has visto, es genial para eliminar todas las versiones del mismo programa. El comando kill está diseñado para matar un proceso a la vez y, por lo tanto, está más dirigido.

Para ejecutar el comando kill, debe conocer el ID de proceso del proceso que desea matar. Para esto puedes usar el comando ps.

Por ejemplo, para encontrar una versión de Firefox en ejecución, puede ejecutar el siguiente comando:

ps -ef | grep firefox

Verá una línea de datos con el comando / usr / lib / firefox / firefox al final. Al comienzo de la línea verá su ID de usuario y el número después de la ID de usuario es el ID de proceso.

Usando el ID de proceso puedes matar a Firefox ejecutando el siguiente comando:

matar -9

Otra forma de matar un programa es usando el comando xkill. Esto se usa generalmente para matar las aplicaciones gráficas que se comportan mal.

Para matar un programa como Firefox, abra una terminal y ejecute el siguiente comando:

xkill

El cursor ahora cambiará a una gran cruz blanca. Desplace el cursor sobre la ventana que desea matar y haga clic con el botón izquierdo del ratón. El programa saldrá inmediatamente.

Otra forma de detener un proceso es mediante el comando superior de Linux. El comando superior enumera todos los procesos en ejecución en su sistema.

Todo lo que tiene que hacer para finalizar un proceso es presionar la tecla "k" e ingresar el ID de proceso de la aplicación que desea eliminar.

Anteriormente en esta sección, el comando kill y requería que encontraras el proceso utilizando el comando ps y luego lo detuvieras usando el comando kill. Esta no es la opción más simple de ninguna manera.

Por un lado, el comando ps devuelve cargas de información que no necesita. Todo lo que querías era la identificación del proceso. Puede obtener el ID de proceso más simplemente ejecutando el siguiente comando:

pgrep firefox

El resultado del comando anterior es simplemente el ID de proceso de Firefox. Ahora puede ejecutar el comando kill de la siguiente manera:

matar

(Reemplazar con el ID de proceso real devuelto por pgrep).

Sin embargo, en realidad es más fácil simplemente proporcionar el nombre del programa a pkill de la siguiente manera:

pkill firefox

Finalmente, puede usar una herramienta gráfica como la que se suministra con Ubuntu llamada "Monitor de sistema". Para ejecutar "Monitor de sistema", presione la tecla Super (tecla de Windows en la mayoría de las computadoras) y escriba "sysmon" en la barra de búsqueda. Cuando aparezca el icono del monitor del sistema, haga clic en él.

El monitor del sistema muestra una lista de procesos. Para finalizar un programa de forma limpia, selecciónelo y presione la tecla de finalización en la parte inferior de la pantalla (o presione CTRL y E). Si esto no funciona, haga clic con el botón derecho y elija "Eliminar" o presione CTRL y K en el proceso que desea matar.