Cómo cancelar un proceso con el comando kill en Linux
Para eliminar un proceso en Linux, puedes utilizar el comando kill, especificando el ID del proceso (PID) o el nombre del proceso. El comando kill envía señales a los procesos, pidiéndoles que se terminen o forzándolos a detenerse.
Además, otros comandos como killall y pkill también ayudan a facilitar la terminación de procesos basándose en el nombre del proceso, lo que ofrece una mayor flexibilidad a la hora de terminar varios procesos a la vez.
Cada uno de estos comandos tiene diferentes opciones para enviar señales, ya sea para matar un proceso de forma ordenada o para detenerlo de forma forzada.
En este artículo, exploraremos cada uno de estos comandos y te mostraremos cómo utilizarlos de forma eficaz en diversos escenarios.

Tabla de Contenidos
Requisitos previos
Antes de aprender a eliminar un proceso en Linux, asegúrate de cumplir los siguientes requisitos previos:
- Máquina basada en Linux: necesitas un ordenador o un servidor que ejecute una distribución de Linux. Si no tienes uno, considera la posibilidad de adquirir un VPS basado en Linux de Hostinger.
- Acceso a terminal o SSH: abre una terminal en tu máquina local o utiliza una aplicación SSH como PuTTY para conectarte a tu servidor Linux de forma remota.
- Acceso root o permisos adecuados: la mayoría de los comandos para eliminar procesos requieren privilegios de root o superusuario. Asegúrate de tener los permisos necesarios para ejecutarlos.
- Herramientas instaladas: asegúrate de instalar las herramientas y los comandos necesarios en tu sistema. Para verificarlo, ejecuta cualquiera de los siguientes comandos:
sudo apt-get install procps x11-utils # for Debian-based distributions
sudo yum install procps-ng xorg-x11-apps # for Red Hat-based distributions

Cómo localizar un proceso en Linux
Primero debes localizar el proceso correcto para evitar detener accidentalmente operaciones esenciales del sistema. A continuación se muestran varios comandos para encontrar detalles de los procesos en ejecución en Linux:
Localizar un proceso con ps
El comando ps proporciona una lista completa de los procesos en ejecución y sus detalles, como el usuario, el ID del proceso (PID), el uso de la CPU y la memoria, y el comando que inició el proceso.
Esta es su sintaxis básica:
ps [options]
Puede añadir estas opciones a este comando:
- -a: muestra información sobre todos los usuarios.
- -u: incluye salida orientada al usuario.
- -x: muestra los procesos sin un terminal de control.
Por ejemplo, si ejecutas lo siguiente:
ps -aux
Deberías ver una salida similar a:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 169364 8824 ? Ss Jul08 0:05 /sbin/init root 2 0.0 0.0 0 0 ? S Jul08 0:00 [kthreadd] ...
Buscar el PID con pidof
El comando pidof busca el PID del proceso por su nombre. Es sencillo y práctico cuando ya se conoce el nombre exacto del proceso.
pidof [options] [program]
Algunas opciones útiles para pidof son:
- -c: devuelve solo los procesos del mismo directorio raíz.
- -o: omite los PID especificados.
- -s: un solo disparo (devolverá el primer PID).
- -x: también scripts (esto devolverá los procesos que han iniciado los scripts).
Por ejemplo, para obtener el PID de sshd, ejecuta:
pidof sshd
Si solo hay una instancia en ejecución, el resultado será un único PID:
1234
Sin embargo, si hay más de una instancia en ejecución, se mostrarán varios PID:
1234 5678
Buscar PID con pgrep
El comando pgrep ofrece una forma más avanzada de buscar un proceso. Devuelve procesos basados en criterios de selección específicos que pueden coincidir con nombres de procesos, conocidos como patrones.
pgrep [options] [pattern]
Estas son algunas opciones comunes que puedes añadir:
- -f: coincide con la línea de comandos completa.
- -l: muestra una lista de los nombres de los procesos y sus ID.
- -n: selecciona el más reciente de los procesos coincidentes.
- -o: selecciona el más antiguo de los procesos coincidentes.
- -u: solo coincide con los procesos cuyo ID de usuario efectivo aparece en la lista.
- -x: coincide solo con los procesos cuyo nombre o línea de comandos coincida exactamente con el patrón si se especifica -f.
Por ejemplo, para mostrar los nombres y los PID de todos los procesos propiedad del usuario john, puedes utilizar:
pgrep -lu john
El comando anterior devolverá:
1234 process_name_1 5678 process_name_2 ...
Ver los procesos en ejecución con top
El comando top proporciona una vista interactiva y en tiempo real de los procesos en ejecución. Muestra los PID, los usuarios, la cantidad de memoria y potencia de CPU que utiliza cada proceso, y el tiempo de ejecución.
Para ver una lista de todos los procesos activos, ejecuta:
top
Este es el resultado que verás:
top - 15:37:58 up 2:13, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 4045860 total, 3810124 free, 140408 used, 94808 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 3643028 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 169364 8824 6508 S 0.0 0.2 0:05.14 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd ...
Para salir de la interfaz superior, pulsa Q.
Listado de procesos sin comandos
Los usuarios de Hostinger pueden listar los procesos en su VPS sin comandos preguntando al asistente de IA Kodee. Simplemente introduce un comando como “Mostrar todos los procesos y sus PID propiedad del usuario root” y Kodee mostrará los procesos correspondientes.
¿Qué procesos se pueden eliminar en Linux?
En Linux se pueden eliminar tanto los procesos de usuario como los de sistema. Los procesos de usuario que pertenecen al usuario generalmente se pueden eliminar sin problemas.
Los procesos de sistema que pertenecen al sistema o al usuario root requieren permisos de root para eliminarlos y deben manejarse con precaución, ya que su terminación puede provocar un fallo del sistema.
Comprender las señales del comando kill
Las señales del comando kill son mensajes enviados a los procesos para indicarles que realicen acciones específicas. Son una parte fundamental de los sistemas operativos basados en Unix, ya que permiten a los usuarios y programas controlar los procesos de forma eficaz.
Puedes ver todas las señales disponibles en Linux con el siguiente comando:
kill -l
Muestra todas las señales junto con sus números y nombres correspondientes, como por ejemplo:
- SIGTERM (señal 15): esta señal solicita que se termine un proceso. El proceso puede capturar esta señal, realizar operaciones de limpieza y luego salir. De forma predeterminada, el comando kill envía SIGTERM si no se especifica ninguna otra señal.
- SIGKILL (señal 9): elimina un proceso de forma forzosa. El proceso no puede capturar ni ignorar esta señal, lo que da lugar a una terminación inmediata. Debe utilizarse como último recurso cuando un proceso no responde a SIGTERM.
- SIGINT (Señal 2): normalmente se envía al pulsar Ctrl + C en el terminal. Interrumpe un proceso y suele utilizarse para detener un proceso que se está ejecutando en primer plano.
- SIGHUP (Señal 1): se envía a un proceso cuando se cierra su terminal de control y se utiliza a menudo para recargar archivos de configuración.
- SIGQUIT (Señal 3): provoca que un proceso termine y produce un archivo de volcado de memoria para la depuración.
- SIGSTOP (Señal 19): pausa un proceso sin terminarlo, de forma similar a pulsar Ctrl + Z en la terminal.
- SIGCONT (señal 18): continúa un proceso que fue detenido por SIGSTOP o Ctrl + Z.
Por ejemplo, para eliminar un proceso con SIGTERM, ejecuta lo siguiente:
kill -15 [PID]
La importancia de elegir la señal adecuada
El uso de la señal kill correcta en función del escenario y del impacto deseado garantiza que los procesos se terminen de forma controlada y predecible, especialmente cuando se trata de tareas en segundo plano.
Por ejemplo, la señal SIGTERM es la preferida para un control seguro de los procesos, ya que permite que estos guarden cuidadosamente su estado y se cierren. SIGKILL, aunque es práctica, debe utilizarse con moderación, ya que puede provocar la pérdida o corrupción de datos.
Consejo profesional
Lee nuestro artículo para aprender algunos de los comandos de Linux más utilizados, lo que te permitirá reforzar tus habilidades y familiarizarse con este sistema operativo.
Cómo eliminar un proceso con PID
Si conoces el PID del proceso que deseas terminar, puedes utilizar fácilmente el comando kill de Linux para enviar una señal. La siguiente es su sintaxis básica:
kill [signal] PID
Por ejemplo, para solicitar que el proceso finalice con la señal SIGTERM predeterminada y el PID 1234, ejecuta:
kill -15 1234
Si el proceso no responde a SIGTERM, prueba a utilizar la señal SIGKILL para terminarlo de forma forzada:
kill -9 1234
También puedes enviar otras señales según tus necesidades específicas, como por ejemplo:
kill -2 1234 # Sends SIGINT
kill -1 1234 # Sends SIGHUP
Cómo eliminar varios procesos
Si necesitas eliminar varios procesos a la vez, el comando kill te permite enviar señales a varios PID. A continuación te explicamos cómo hacerlo:
kill [signal] PID1 PID2 PID3
A continuación se muestra un ejemplo de cómo finalizar procesos con los PID 1234, 5678 y 91011 utilizando SIGTERM:
kill -15 1234 5678 91011
Para enviar una señal a todos los procesos de un grupo, utiliza el PID negativo del líder del grupo:
kill -15 -1234
Esto termina todos los procesos del grupo liderado por el PID 1234.
Ten cuidado al terminar procesos padres, ya que al hacerlo también se pueden terminar los procesos hijos asociados a ellos.
Cómo eliminar un proceso con el comando pkill
El comando pkill te permite eliminar procesos por su nombre, a menudo más rápido que utilizando el comando kill con un PID. A continuación cómo se puede utilizar pkill:
pkill [signal] [process name]
Por ejemplo, para eliminar un proceso llamado nginx, ejecuta:
pkill -SIGTERM nginx
Si deseas terminar procesos que pertenecen a un usuario específico:
pkill -u john
Por ejemplo, para finalizar los procesos asociados con un terminal pts/1:
pkill -t pts/1
También puedes eliminar todos los procesos de un grupo de procesos específico, por ejemplo, PGID 1234:
pkill -g 1234
Para terminar la instancia más reciente o más antigua de un proceso, escribe lo siguiente:
pkill -n nginx # Kill the newest instance of nginx
pkill -o nginx # Kill the oldest instance of nginx
También puede combinar varias opciones para hacer coincidir procesos basándose en criterios específicos. Por ejemplo, para eliminar de una vez todos los procesos del usuario john en el terminal pts/1 del grupo de procesos 1234, ejecuta:
pkill -u john -t pts/1 -g 1234
Cómo eliminar un proceso con el comando killall
killall termina todas las instancias de un proceso por nombre y puede seleccionar procesos en función de su antigüedad, usuario y tiempo de ejecución.
Es ideal para gestionar procesos con el mismo nombre en todo el sistema, en comparación con kill para procesos individuales y pkill para gestionar selectivamente varias instancias de un proceso.
La sintaxis básica del comando killall es:
killall [options] [process_name]
Estos son algunos de sus usos principales:
killall nginx # Terminates all instances of nginx
killall -s SIGKILL nginx # Forcefully kills all instances of nginx
killall -u john nginx # Ends all nginx processes owned by the user john
Si deseas eliminar procesos que se han estado ejecutando durante un tiempo determinado:
killall -o 1h nginx
Esto termina todos los procesos nginx que llevan más de una hora ejecutándose.
Para eliminar todas las instancias de un proceso excepto una, específica:
killall -v -I nginx
Puedes excluir un proceso nginx específico para que no se elimine con el comando anterior.
Además, para eliminar procesos en función de su carga de CPU o uso de memoria:
killall -i -s SIGKILL nginx
Esto envía un mensaje interactivo antes de eliminar cada proceso nginx para que pueda confirmar o rechazar cada acción.
¿Cuál es la diferencia entre los comandos kill y killall?
El comando kill requiere un PID y termina un proceso específico, lo que lo hace ideal para un control preciso. Por su parte, el comando killall termina todas las instancias de un proceso por su nombre, lo que ofrece más flexibilidad para gestionar procesos con el mismo nombre en todo el sistema.
Cómo eliminar un proceso con el comando xkill
El comando xkill está diseñado para entornos basados en GUI, como un portátil con Linux instalado. Con él, puedes eliminar aplicaciones que se han bloqueado o que no responden a los comandos de terminación estándar con un simple clic.
A continuación se presentan algunos casos en los que xkill resulta útil:
- Aplicaciones que no responden: si una aplicación deja de responder y no puedes cerrarla con los métodos estándar.
- Elementos GUI bloqueados: cuando ciertos elementos GUI, como ventanas o cuadros de diálogo, se bloquean y no permiten la interacción.
- Terminación rápida: cuando necesitas terminar una ventana o aplicación específica de forma rápida y sencilla sin buscar su PID.
Para utilizar xkill, introduce este comando en tu terminal:
xkill
Después de ejecutar este comando, el cursor del ratón cambiará a un icono ×. A continuación, mueve el cursor a la ventana de la aplicación que no responde y haz clic con el botón derecho del ratón sobre ella. Esto eliminará inmediatamente el proceso seleccionado.
Alternativamente, si conoces el ID de la ventana de la aplicación que no responde, escribe:
xkill -id <window_id>
Con este comando, puedes seleccionar y cerrar una ventana específica directamente.
Ten en cuenta que xkill no admite de forma nativa la eliminación por clase o nombre. Sin embargo, puedes utilizar otras herramientas junto con él para obtener resultados similares. Por ejemplo, utiliza wmctrl para enumerar las ventanas y sus ID y, a continuación, ejecuta xkill con el ID adecuado.
Para instalar wmctrl, ejecuta:
sudo apt-get install wmctrl
Una vez hecho esto, enumera todas las ventanas y sus ID:
wmctrl -l
El resultado será similar a este:
0x03c00003 0 hostname Firefox 0x04a00004 0 hostname Terminal 0x05000005 0 hostname Code
A continuación, ejecuta xkill con el ID deseado, por ejemplo:
xkill -id 0x03c00003
Cómo eliminar un proceso con el comando top
El comando top proporciona una vista interactiva en tiempo real del uso de recursos y los procesos en ejecución. Es útil para identificar y matar procesos que consumen recursos excesivos o que dejan de responder.
Como se ha explicado anteriormente, puedes escribir top en tu terminal para iniciarlo. Para navegar por la lista de procesos, utiliza las teclas de flecha. Pulsa Mayús + P para ordenar los procesos por uso de la CPU, mientras que Mayús + M los ordena por uso de la memoria.
... PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 169364 8824 6508 S 0.0 0.2 0:05.14 systemd 512 user 20 0 120364 6024 2508 S 1.0 0.1 0:02.04 firefox 789 user 20 0 140364 7624 3208 R 2.0 0.3 0:03.22 chrome ...
Una vez que hayas identificado el proceso que deseas finalizar, pulsa K.
top te pedirá que introduzcas el PID del proceso que deseas eliminar. A continuación, deberás especificar la señal que deseas enviar al proceso.
Pulsa Intro para enviar la señal SIGTERM predeterminada o escribe un número de señal diferente si es necesario.
Por ejemplo, para eliminar el proceso chrome con PID 789 utilizando SIGKILL:
k PID to kill: 789 Send signal (15): 9
Además, para ver los procesos que pertenecen a un usuario específico, inicia top con la opción -u como se muestra a continuación:
top -u john
También puedes personalizar las columnas que se muestran en top pulsando F. De esta forma, puedes añadir o eliminar columnas y ordenarlas según diferentes criterios.
Mantén el control de tus procesos en Linux
Saber cómo identificar y matar procesos en Linux no solo te permite resolver errores puntuales: también te da control total sobre cómo se comporta tu sistema.
Al dominar comandos como kill, pkill, killall, xkill y top, puedes gestionar eficazmente los recursos, optimizar el rendimiento y evitar bloqueos inesperados en tu entorno de trabajo o servidor.
Más allá de detener procesos, esta práctica forma parte de una buena administración del sistema. Entender qué tareas se ejecutan, cuánta memoria consumen y cuándo intervenir te ayudará a mantener un entorno estable y seguro.
Si trabajas con servidores remotos o entornos VPS, aplicar estos conocimientos te permitirá diagnosticar problemas más rápido y mantener tus servicios en línea sin interrupciones. Con el tiempo, aprenderás a automatizar tareas y a mantener tus procesos bajo control incluso en los sistemas más complejos.