Un utilisateur peut vouloir supprimer le processus avant l’exécution de la dernière instruction, par
exemple, pour arrêter un programme qui boucle. Si le processus s’exécute en avant-plan, l’utilisateur peut
taper CTRL−C et ainsi terminer le processus. Il peut aussi utiliser la commande kill envoyant un
« signal » à un processus. Vous verrez plus en détail la notion de signal dans le cours d’architecture
matérielle et logicielle. La commande kill permet à l’utilisateur de terminer un processus. Cette
commande prend en argument un numéro de signal et le numéro (PID) du processus. Par défaut
(c’est-à-dire si le signal n’est pas précisé), la commande kill envoie le signal 15 de terminaison (appelé
SIGTERM) au processus.
Ce signal SIGTERM entraîne le plus souvent l’arrêt du processus. Si le processus ne se termine pas,
l’envoi du signal 9 (SIGKILL) grâce à l’option -9 forcera la terminaison.
Pour connaître la liste des signaux, il faut utiliser l’option -l.
Il est possible de donner un numéro de job au lieu d’un numéro de processus. Rappelez-vous que pour
connaître le numéro de job, vous pouvez utiliser la commande jobs. Dans ce cas, le numéro de job,
argument de la commande kill est précédé du caractère « % ».
Il existe enfin la commande GNU/Linux killall. Cette commande permet de supprimer tous les processus ayant le même nom. Dans l’exemple suivant, on utilise la commande sleep. La commande sleep permet de faire une pause pendant un certain nombre de secondes. Cette commande est souvent utilisée pour introduire une temporisation entre deux commandes successives. Dans l’exemple, trois processus exécutant sleep pour une durée longue, de 5000 secondes sont créés. En utilisant la commande killall, ces trois processus sont supprimés.
Le droit de détruire un processus est réservé à son propriétaire. Naturellement, le super-utilisateur peut détruire n’importe quel processus.