Linux Kill Process par PID

Linux Kill Process par PID
Dans Linux (et les plus systèmes d'exploitation modernes), la fin d'un processus nécessite de l'envoi d'un signal terminal approprié. Il existe plusieurs façons d'envoyer un signal de terminaison à un processus particulier. Si vous connaissez le PID (ID de processus) du processus cible, alors la commande Kill peut lui envoyer directement le signal de terminaison.

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.

  • Sigup (1) - Le terminal de contrôle est suspendu ou le processus de contrôle est mort. Dans une telle situation, Sigup rechargera les fichiers de configuration et ouvrira / fermer les fichiers journaux.
  • Sigkill (9) - C'est un signal de mise à mort direct au processus cible. Il doit être utilisé comme dernier recours pour résilier un processus. Si un processus est terminé à l'aide de Sigkill, il n'enregistrera pas les données ou ne nettoie pas lors de la résiliation du processus.
  • Sigterm (15) - Il envoie un signal de terminaison au processus cible. SIGTERM est le signal par défaut à envoyer. Il est également considéré comme la méthode la plus sûre pour mettre fin à un processus.

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!