# kill



La commande **kill** permet d’**envoyer un signal à un processus**. 

Elle est couramment utilisée pour fermer (**tuer**) un programme en cours d’exécution.



Pour utiliser la commande **kill**, il est nécessaire de connaître le **PID** du processus à fermer.

On utilise pour cela la commande **pidof**:

```bash
bruno@DS916:~ $ pidof gitea
7189
```



```bash
bruno@DS916:~ $ ps auxw | grep gitea
bruno    18268  0.0  0.0   5856   964 pts/0    S+   12:57   0:00 grep gitea
```

On peut ensuite fermer (tuer) proprement le processus:

```bash
bruno@DS916:~ $ kill 7189
```



Si on n’arrivez pas à fermer un programme qui a par exemple planter, il est interressant d’utiliser **kill** avec une option particulière permettant de **forcer la fermeture du processus**

La **commande kill** permet d’envoyer des signaux à des processus, le signal utilisé pour forcer la fermeture d’un programme est **SIGKILL.** Sachez également que les signaux sont numérotés, le signal SIGKILL a le numéro 9.

Pour forcer la fermeture d’un processus, utilisez la commande **kill** avec l’**option -s**, cette option permet de spécifier le signal à envoyer.

```bash
bruno@DS916:~ $ kill -s 9 7189
```

```bash
bruno@DS916:~ $ kill -s SIGKILL 7189
```

One-line:

```bash
bruno@DS916:~ kill $(pidof firefox)
```



On peut aussi utiliser la commande **pkill**:

```bash
$ pkill gitea
```

et en forçant la fermeture:

```bash
$ pkill -KILL gitea
```



##### Lister les signaux disponibles

```bash
$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS
```

