kill (Unix)
En informatique, kill
est une commande de certains systèmes d'exploitation (norme POSIX[1]) utilisée pour demander l'arrêt d'un processus en cours d'exécution.
Implémentations
Dans les systèmes Unix et apparentés, kill
permet d'envoyer des messages simples aux processus en cours d'exécution. Par défaut, le message est un signal d'arrêt, demandant la fin du processus. La commande kill
encapsule l'appel système kill()
, lequel envoie des signaux aux processus ou groupes de processus, référencés par leur identifiant (PID ou PGID). kill
est toujours fournie sous la forme d'un utilitaire à part entière, mais la plupart des shells possèdent également leur propre commande kill
dont l'implémentation peut être légèrement différente.
Parmi les différents signaux qui peuvent être envoyés, les plus courants sont généralement SIGTERM et SIGKILL. Le signal envoyé par défaut est SIGTERM. À l'exception de SIGKILL et de SIGSTOP, tous les signaux peuvent être interceptés par le processus, lui offrant la possibilité d'effectuer des opérations spécifiques lorsqu'il les reçoit. SIGKILL et SIGSTOP ne sont vus que par le noyau ; SIGKILL termine le processus, SIGSTOP le place en arrêt jusqu'à la réception d'un signal SIGCONT.
Unix met en place des mécanismes de sécurité afin d'éviter que des utilisateurs ne terminent les processus s'il n'y sont pas autorisés. De façon générale, pour qu'un processus envoie un signal à un autre, le propriétaire du premier doit être le même que celui du deuxième, ou l'utilisateur root.
Suivant les implémentations Unix, les signaux disponibles peuvent avoir des noms différents, et peuvent être assignés à différents numéros. SIGTERM est souvent numéroté 15 et SIGKILL, 9.
Exemples
Les quatre exemples ci-dessous envoient le signal SIGTERM (numéroté 15) à un processus (identifié ici par le PID 1234) :
kill 1234
kill -s TERM 1234
kill -TERM 1234
kill -15 1234
Les trois exemples ci-dessous envoient le signal SIGKILL (numéroté 9) à ce même processus :
kill -s KILL 1234
kill -KILL 1234
kill -9 1234
L'exemple ci-dessous envoie le signal SIGKILL (numéroté 9) à tous les processus sauf le PID n°1 (effet limité au processus de l'UID sous laquelle on est connecté dû au mécanisme de sécurité, à tout le monde si utilisateur root) :
kill -9 -1
Notes et références
Voir aussi
Liens internes
- Signal (informatique)
- Xkill
- killall (Unix)
- Pkill
- signal.h
Liens externes
- « Kill - Manuel de l'utilisateur Linux », Debian Man Page Lookup (consulté le )