Dans ce guide, nous montrerons comment tuer un processus Linux par son PID.
Pid en linux
Le terme PID est un acronyme de «numéro d'identification des processus». Chaque processus se voit attribuer un PID unique au moment où ils sont créés sur le système. Le PID numéro 1 est affecté à SystemD (init, pour les systèmes plus anciens). Essentiellement, Systemd ou init est toujours le premier processus à démarrer sur Linux et est le parent de tous les autres processus.
Il existe quelques outils que nous pouvons utiliser pour obtenir le PID d'un processus cible. La méthode la plus populaire (et recommandée) pour obtenir le PID est d'utiliser la commande PS. C'est un outil intégré disponible sur tous les systèmes Linux. En savoir plus sur la commande PS dans Linux.
Pour imprimer tous les processus en cours d'exécution avec leur PID, exécutez la commande PS suivante:
$ ps -ef
Pour une navigation plus facile, tuyau la sortie vers la commande inférieure:
$ ps -ef | moins
Notez que la colonne PID répertorie tous les processus triés par PID. C'est la valeur que nous recherchons.
À la recherche d'un processus particulier avec un nom spécifique? Ensuite, la commande grep est votre ami. Il peut rechercher un modèle particulier dans le fichier donné (STDOUT, dans ce cas). Par exemple, la commande suivante recherchera tout processus de Firefox en cours d'exécution:
$ ps -ef | Grep Firefox
Si vous connaissez le nom du processus cible, nous pouvons utiliser la commande pidof pour obtenir directement le PID.
$ pidof firefox
Une autre commande intéressante pour faire le travail est Pgrep. Il fonctionne directement sur la liste des processus en cours d'exécution. La commande pgrep prendra le nom du processus comme paramètre et imprimera le pid de toute entrée correspondante.
$ pgrep firefox
Notez le PID du processus cible. La section suivante de cet article présentera la fin du processus par son PID.
Tuer un processus
Tuer un processus nécessite d'envoyer un signal terminal au processus. Cependant, il n'y a pas un seul signal de terminaison. Il y en a plusieurs, chacun agissant légèrement différemment des autres. Donc, il est crucial de les comprendre en premier.
Signaux de tue de linux
La commande kill dans Linux est responsable de l'envoi des signaux de terminaison. Pour une explication détaillée, consultez ce guide sur la commande Linux Kill. En bref, vous dites à la commande de kill quel signal envoyer au processus (en utilisant PID).
Pour obtenir la liste complète de tous les signaux de terminaison, exécutez la commande suivante:
$ kill -l
Pour la plupart, cependant, nous n'aurons qu'à une poignée d'entre eux. Voici des explications détaillées des signaux de terminaison les plus courants que vous devez connaître.
Tuer un processus à l'aide de Kill
C'est le moyen par défaut de terminer un processus cible sur Linux. La commande kill suit la structure de commande suivante:
$ kill -
Par exemple, pour envoyer Sigterm à un processus, la commande ressemblerait à ceci:
$ kill -15
De même, si vous souhaitez envoyer Sigkill, utilisez la commande suivante:
$ kill -9
En savoir plus sur la commande Linux Kill avec des explications et des exemples approfondis.
Tuer plusieurs processus en utilisant Killall
Le commandement Killall agit similaire à Kill. Cependant, au lieu de définir un PID spécifique, il utilise le nom du processus et envoie le signal de terminaison spécifié à tous les processus qui correspondent au nom.
La structure de commande de Killall ressemble à ceci:
$ killall -
Par exemple, la commande Killall suivante enverra Sigterm à tous les processus de Firefox en cours d'exécution:
$ killall -15 Firefox
Consultez ce guide sur la commande Linux Killall pour des explications détaillées avec des exemples. Il est également recommandé de consulter la page de l'homme de Killall:
$ man killall
Tuer plusieurs processus à l'aide de pkill
Semblable à la commande killall, PKill peut également rechercher des processus en fonction du nom et envoyer le signal de terminaison spécifié. La structure de commande est également presque similaire;
$ pkill -
Par exemple, utilisez la commande PKILL suivante pour terminer le processus Firefox avec SIGTERM:
$ pkill -15 Firefox
Comme toujours, vérifiez la page de l'homme de Pkill pour des explications approfondies avec toutes les nuances:
$ man pkill
Dernières pensées
Ce guide présente diverses façons de tuer un processus par son PID. Il démontre également des méthodes alternatives en utilisant le nom de processus au lieu de PID. Il vaut toujours mieux avoir plusieurs outils à votre disposition. Ici, nous avons utilisé des commandes PS et PGREP pour trouver les commandes PID et Kill, Pkill et Killall pour la mise à mort de processus.
Dans de nombreuses situations, vous voudrez peut-être vous débarrasser des processus de fond embêtants qui fonctionnent mal. En savoir plus sur l'identification des processus de fond dans Linux. Ensuite, en suivant les méthodes de ce guide, vous pouvez facilement vous débarrasser de ceux indésirables.
Happy Computing!