> ## Content Index
> Fetch the complete content index at: https://itsfoss.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Cómo matar un proceso en la línea de comandos de Linux
- URL: https://itsfoss.com/es/matar-proceso-linux/
- Published: 2022-09-06T02:00:00.000Z
- Updated: 2023-01-01T02:02:31.000Z
- Description: ¿Has encontrado un proceso que se comporta mal? A continuación, te explicamos cómo darle una lección terminándolo con varios comandos.
- Author: Marco Carmona
- Tags: Español

Ha sido un día increíble en tu sistema Linux, y de repente un proceso empieza a ralentizar todo tu ordenador. No es tan importante y es por ello que quieres detener su ejecución.

Si el comando/proceso se está ejecutando en primer plano, puedes utilizar el atajo de terminal Ctrl+C. Sin embargo, si el proceso no es visible (lo que significa que se ejecuta en segundo plano), puedes utilizar comandos dedicados para «matarlo».

El término «matar un proceso» se refiere a detener un proceso a mitad de su ejecución. Si [conoce el ID del proceso (PID)](https://linuxhandbook.com/find-process-id/?ref=itsfoss.com), puedes utilizar el comando kill de la siguiente manera:

```
kill <signal> <PID>
```

En la sintaxis anterior, ****signal** se refiere a la señal de kill que quieres enviar para la terminación y ****PID** se refiere al ID del proceso.

También existe el comando killall y en este artículo hablaré tanto de los [comandos kill como de los killall](https://linuxhandbook.com/kill-vs-killall/?ref=itsfoss.com).

Antes de empezar a matar procesos, deberías saber algunas cosas. Tales como qué señales de terminación están disponibles, cómo encontrar el PID, entre otras cosas.

Empecemos con las señales primero.

## **Señales de terminación en Linux**

Cuando un proceso es terminado por el SO o por el usuario, es decir, el proceso no terminó por sí mismo, se le envía una señal de terminal.

A continuación, están las señales de terminación disponibles:

| Señal   | Valor Numérico                                                              | Descripción                                                                                                                                                                                                                                          |
| ------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SIGHUP  | 1                                                                           | Señal de colgado: Enviada a un proceso cuando el terminal que lo controla se cierra.                                                                                                                                                                 |
| SIGINT  | 2                                                                           | Señal de Interrupción: La señal enviada a un proceso cuando un usuario termina unproceso. (por ejemplo, Ctrl + X)                                                                                                                                    |
| SIGKILL | 9                                                                           | Señal Kill: La señal que cierra inmediatamente un proceso, sin permitirle guardar suestado actual.                                                                                                                                                   |
| SIGTERM | 15                                                                          | Señal Terminar: Enviado a la señal para solicitar la terminación del proceso. Esta señalpuede ser ignorada por un proceso. Pero esta es la forma preferida de terminar unproceso ya que puede liberar los recursos cuando el proceso recibe SIGTERM. |
| SIGSTOP | 19 (for x86, ARM and most others)17 (for Alpha)23 (for MIPS)24 (for PARISC) | Señal de parada: Señal para detener un proceso, pero para reanudarlo en un momentoposterior.                                                                                                                                                         |

Lo más probable es que utilices las señales 9 y 15\. [Lee más sobre la diferencia entre SIGKILL y SIGTERM](https://linuxhandbook.com/sigterm-vs-sigkill/?ref=itsfoss.com).

## **Obtener el PID de un proceso**

También necesitas conocer los detalles del proceso que quieres terminar. Con el comando kill, debes proporcionar el id de un proceso (PID). Puedes obtener el PID a partir del nombre del proceso:

```
pidof nombre_de_proceso_exacto
```

## **Terminar un proceso en la línea de comandos de Linux**

Veamos primero el comando kill ya que lo usarás más que killall.

### **Uso del comando kill**

El comando ****kill** requiere que conozcas el ID de un proceso que quieras matar y, opcionalmente, la señal de terminación.

Para matar simplemente un comando, utiliza la siguiente sintaxis:

```
kill <señal> <PID>
```

El envío de una señal de terminación a un PID es opcional, y si no se proporciona ninguna señal, ****kill** envía por defecto SIGTERM (****15**), terminando en una terminación elegante de dicho proceso.

He iniciado un proceso en segundo plano del [comando sleep](https://linuxhandbook.com/bash-sleep/?ref=itsfoss.com) (y me ha dado un PID). Intentemos matarlo usando el comando ****kill**.

Matar esta instancia particular de ****sleep** se vería como lo siguiente:

```
$  sleep 120 &
[1] 125686

$ kill 125686
[1]  + terminated  sleep 120
```

Si quisieras utilizar una señal de terminación, podrías utilizar el valor numérico o la propia señal:

```
$ sleep 120 &
[1] 125746

$ kill -SIGKILL 125746
[1]  + killed     sleep 120

####----##-----####

$ sleep 120 &
[1] 125759

$ kill -9 125759
[1]  + killed     sleep 120
```

💡

Si no se especifica ninguna señal con el comando kill, se utiliza por defecto SIGTERM (15).

## **Uso del comando killall**

Si no sabes cuál es el PID de un proceso, o si dicho proceso tiene varios procesos hijos, y quieres matar los procesos hijos y el proceso padre a la vez, puedes utilizar el comando ****killall**.

```
killall [signal] <nombre-del-proceso>
```

Al igual que el comando ****kill**, especificar una señal de terminación es opcional. Cuando no se especifica ninguna señal de terminación, ****killall** enviará SIGTERM (****15**) para cerrar el proceso con éxito.

Para demostrar el uso de ****killall**, quiero matar dos comandos sleep en ejecución.

```
$ sleep 120 &
[1] 18609

$ sleep 2000 &
[2] 18612

$ killall sleep
[1]-  Terminated              sleep 120
[2]+  Terminated              sleep 2000
```

Además, puede utilizar la bandera ****\-e** para encontrar una coincidencia exacta del nombre del proceso.

## **Uso del comando pkill**

Un comando alternativo a ****kill** es el comando ****pkill**. Es una «combinación» de los comandos ****pgrep** y ****kill**.

El comando ****killall** mata todos los procesos que tienen un nombre coincidente. Por otro lado, ****pkill** utiliza la coincidencia de patrones para coincidir con los procesos y los mata.

A continuación, se muestra la sintaxis:

```
pkill [opciones] patrón
```

Algunas opciones útiles disponibles en el comando ****pkill** son las siguientes

- ****\-u:** Procesos que pertenecen a un propietario en particular
- ****\-x:** Procesos que coinciden exactamente con el patrón
- ****\-signal:** Especifica una señal de terminación (por defecto es SIGTERM)

Suponiendo que tengo un usuario ****invitado** (guest) en mi ordenador que no debería tener ningún proceso en ejecución actualmente, y si lo hay, quiero terminarlo. ¿Cómo puedes hacerlo?

```
$ ps aux | grep sleep
guest     126061  0.0  0.0   6664   428 pts/3    S    10:14   0:00 sleep 50

$ sudo pkill -u guest
```

Ten en cuenta que usé ****sudo** porque estaba tratando con procesos que no pertenecían a mi usuario.

Con este artículo, aprendiste 3 comandos diferentes para matar un proceso en Linux. Me parece que será el comando kill el que más te guste de los otros. ¿Estoy en lo cierto?