Comment tuer un processus Linux : Terminer un processus avec les commandes kill et killall

Lorsque vous gérez un serveur Linux, vous pouvez être confronté à des processus qui ne répondent pas ou qui fonctionnent mal, qui consomment trop de ressources système, qui ralentissent votre travail et qui ont un impact négatif sur les autres processus en cours d’exécution. Savoir comment tuer un tel processus sous Linux est essentiel pour une administration efficace du système.

Cet article vous guidera à travers différentes méthodes pour mettre fin aux processus non réactifs sous Linux. Que vous soyez un administrateur débutant ou expérimenté, ces méthodes vous aideront à gérer efficacement les processus dans un environnement Linux.

La commande commande Linux kill met fin à un processus en cours d’exécution, qui ne répond pas ou qui fonctionne mal, de manière contrôlée et sécurisée.

Comment localiser un processus sous Linux

Avant de mettre fin à un processus, il est essentiel de l’identifier correctement. Heureusement, le système Linux fournit divers outils à cette fin. Les commandes ps et top font partie des outils les plus courants.

La commande ps affiche un instantané de tous les processus en cours d’exécution, ce qui vous permet de trouver l’ID (PID) d’un processus spécifique. Voici un format de base de la commande ps :

ps [options]

Voici les options les plus courantes à combiner avec la commande ps :

  • -a – affiche les processus pour tous les utilisateurs.
  • -u – affiche les processus de l’utilisateur actuel.
  • -x – inclut les processus sans terminal.

Pour rendre votre liste plus spécifique, ajoutez une commande grep. Par exemple, la commande suivante affichera tous les processus Java en cours d’exécution :

ps -aux | grep java

En revanche, la commande top offre une vue dynamique de tous les processus Linux en cours d’exécution et de leur utilisation des ressources, sans nécessiter d’arguments ou d’options supplémentaires.

Lorsque ps et top ne sont pas assez spécifiques, pidof et pgrep offrent des possibilités de recherche plus ciblées.

La commande pidof permet de trouver le PID d’un processus à partir de son nom. Voici le format de base de la commande :

pidof [options] [nom du processus]

Par exemple, pidof nginx trouve le PID des processus NGINX. Quelques options peuvent être incluses, telles que :

  • -c – garantit que seuls les PID du répertoire racine actuel sont renvoyés.
  • -o – omet les PID spécifiés dans les résultats.
  • -s – ne renvoie qu’un seul PID, généralement le plus ancien, parmi les processus correspondants.

La commande pgrep offre un mécanisme de recherche plus souple par nom ou par d’autres attributs. Elle utilise le format suivant :

pgrep [options] [pattern]

Par exemple, pgrep -u nom d’utilisateur localise les processus exécutés par un utilisateur spécifique. Vous pouvez ajouter ces options pour filtrer la sortie :

  • -n – renvoie uniquement l’instance la plus récente parmi les processus correspondants.
  • -o – renvoie uniquement l’instance la plus ancienne parmi les processus correspondants.
  • -u – correspond aux processus dont l’utilisateur spécifié est propriétaire.

Tuer les signaux de commande

Après avoir identifié le processus à terminer, l’étape suivante consiste à envoyer un signal approprié à l’aide de la commande kill. Chaque type de signal a une fonction différente, affectant la manière dont un processus se termine.

Pour afficher tous les signaux disponibles, utilisez la commande suivante :

kill -l

Il s’agit d’une liste de tous les types de signaux de processus Linux, y compris :

  • SIGTERM (15) – il s’agit du moyen par défaut et le plus sûr de mettre fin à un processus en cours d’exécution sous Linux. Il permet au processus de se terminer de manière élégante.
  • SIGKILL (9) – ce signal arrête immédiatement tout processus primaire ou d’arrière-plan sans lui permettre de se nettoyer.
  • SIGSTOP (19) – met en pause un processus en cours sans le terminer.
  • SIGHUP (1) – ce signal signale que le terminal de l’utilisateur est déconnecté, ce qui entraîne souvent l’arrêt du processus.
  • SIGINT (2) – ce signal interrompt un processus, généralement envoyé par le raccourci clavier Ctrl+C.

Lorsque vous utilisez des signaux d’arrêt, vous pouvez spécifier le nom du signal ou sa valeur numérique. Il est essentiel de choisir le bon signal d’arrêt en fonction du scénario et de l’impact que vous souhaitez avoir sur le processus.

Par exemple, le signal SIGTERM est préféré pour un contrôle sûr des processus sous Linux, car il permet aux processus de sauvegarder leur état et de se terminer proprement. SIGKILL, bien que pratique, doit être utilisé avec parcimonie car il peut entraîner la perte ou la corruption de données.

Comment tuer un processus Linux 

Après avoir compris les signaux, explorons les méthodes permettant de tuer un processus en cours d’exécution sous Linux. Si vous utilisez un serveur privé virtuel (VPS), accédez au serveur avec un client SSH, tel que PuTTY.

Les clients VPS d’Hostinger peuvent utiliser notre terminal de navigateur intégré pour une terminaison efficace des processus. Disponible pour tous les plans d’hébergement VPS, cet outil offre un moyen pratique de gérer votre serveur directement à partir du navigateur.

Comment tuer un processus avec le VPS Hostinger

Voici comment tuer un processus via hPanel :

  1. Connectez-vous à hPanel et naviguez jusqu’à la section VPS.
  2. Sélectionnez le serveur que vous souhaitez gérer et accédez à l’onglet Accès SSH. Vous y trouverez le nom d’utilisateur et le mot de passe SSH nécessaires pour entrer dans le terminal.
  1. Cliquez sur le bouton Terminal de navigateur. Cela ouvrira une nouvelle fenêtre de terminal dans un nouvel onglet.
  2. Entrez dans le serveur en tapant les informations d’identification SSH que vous avez obtenues.

Après vous être connecté, vous pouvez utiliser la commande kill pour mettre fin aux processus. Par exemple :

kill 63772

63772 est le PID du processus que vous souhaitez quitter. Vous pouvez également utiliser d’autres méthodes fournies dans les sections suivantes sur le terminal de navigateur d’Hostinger.

Une fois cela fait, accédez au bouton flottant Masquer/Afficher la barre de contrôle et cliquez sur Déconnecter pour arrêter la connexion.

Comment tuer un processus à l’aide de la commande kill avec un PID

Il est facile de tuer un processus sous Linux si l’on connaît son PID. Exécutez la commande kill [PID], par exemple :

kill 12345

Cela enverra un SIGTERM au processus ayant le PID 12345, pour tenter de le terminer de manière élégante. Il est utile de tuer un processus en arrière-plan sous Linux.

Si le processus ne se termine pas avec le SIGTERM par défaut, il peut être nécessaire de le tuer de force. Pour ce faire, ajoutez l’option -9, qui envoie un signal SIGKILL. Par exemple :

kill -9 12345

Comment tuer plusieurs processus

Vous pouvez tuer plusieurs processus à la fois sous Linux en utilisant la même commande kill. Passez plusieurs PID à la commande, par exemple :

kill 12345 67890 13579

Cette opération envoie simultanément un signal de fin aux processus ID 12345, 67890 et 13579.

Dans les cas où vous devez tuer des processus présentant des caractéristiques similaires, les caractères génériques peuvent être utilisés avec des commandes telles que pgrep. Par exemple :

kill $(pgrep pattern)

Cette commande tue tous les processus qui correspondent au modèle donné.

Comment tuer un processus à l’aide de la commande pkill

La commande pkill de Linux offre une approche plus souple pour tuer les processus par leur nom ou d’autres attributs. Elle est avantageuse lorsque vous ne connaissez pas un PID spécifique.

Pour tuer de force un processus par son nom sous Linux, exécutez pkill [nom du processus]. Par exemple :

pkill apache

Cette commande mettra fin à tous les processus contenant le nom apache.

En outre, vous pouvez utiliser les options suivantes avec pkill :

  • -u [nom d’utilisateur] – tue les processus appartenant à un utilisateur spécifique.
  • -t [terminal] – Tue les processus attachés à un terminal spécifique.
  • -l – fournit une liste détaillée des processus avec leur PID.

Soyez prudent lorsque vous utilisez pkill, car il peut affecter plusieurs processus. Par exemple, si vous avez des processus nommés apache et apache-helper, l’exécution de pkill apache mettra fin aux deux. Veillez toujours à cibler le nom exact du processus afin d’éviter toute perturbation involontaire.

Comment tuer un processus à l’aide de la commande killall

La commande killall est similaire à pkill mais a une méthode distincte dans la terminaison des processus Linux.

Alors que pkill est efficace pour tuer des processus sur la base d’une correspondance partielle du nom du processus, la commande killall exige la correspondance exacte du nom du processus. La commande killall est donc plus spécifique et moins susceptible de mettre fin à des processus non souhaités.

Pour utiliser cette commande, tapez killall [nom du processus]. Par exemple :

killall apache

Il mettra fin à tous les processus nommés apache. Il est particulièrement pratique de tuer simultanément les processus d’arrière-plan.

La commande killall peut être personnalisée avec des options d’horodatage, notamment :

  • -o [time] – ne tue que les processus plus anciens que la durée spécifiée.
  • -y [time] – ne tue que les processus plus récents que la durée spécifiée.

La spécification [time] dans ces options est généralement donnée sous le format s pour les secondes, m pour les minutes, h pour les heures, d pour les jours, w pour les semaines, M pour les mois et y pour les années. 

Par exemple, cette commande met fin à tous les processus en cours d’exécution nommés chrome qui ont été exécutés pendant plus de 30 minutes :

killall -o 30m chrome

Conclusion

Dans ce guide, nous avons exploré différentes méthodes pour tuer un processus sous Linux à l’aide d’un script shell. Nous avons abordé différents signaux et les commandes pkill, killall et kill. Ces techniques sont cruciales pour faciliter un arrêt gracieux sous Linux et éviter l’instabilité du système.

La maîtrise de ces compétences est essentielle pour gérer les processus en arrière-plan avec confiance et précision, ce qui est la clé d’une gestion efficace des tâches sous Linux.

Comment tuer un processus sous Linux – FAQ

Cette section répond aux questions les plus courantes sur la manière de forcer l’arrêt d’un processus sous Linux.

Quels sont les processus que l’on peut tuer sous Linux ?

Sous Linux, vous pouvez mettre fin à la plupart des processus, y compris les processus parents et enfants. Il convient toutefois d’être prudent, en particulier avec les processus système et ceux lancés par l’utilisateur root. La fermeture d’un processus parent critique peut entraîner une défaillance du système ou un comportement inattendu.

Quelle est la différence entre les commandes kill et killall ?

La commande Linux kill est utilisée pour mettre fin de force à un processus sous Linux en utilisant son PID, tandis que la commande killall met fin à tous les processus portant un nom spécifique. Les commandes ci-dessus font partie intégrante de l’administration du système Linux.

Comment trouver l’ID du processus (PID) d’un processus que je veux tuer ?

Pour trouver un PID dans le système d’exploitation Linux, utilisez la commande ps, qui affiche la table des processus. La commande pgrep [nom du processus] permet également de trouver le PID d’un processus par son nom. Cette fonction est cruciale, notamment pour identifier les processus appartenant à un autre utilisateur et qui doivent être tués avec succès.

Author
L'auteur

Chaimaa Chakir

Chaimaa est une spécialiste du référencement et du marketing de contenu chez Hostinger. Elle est passionnée par le marketing digital et la technologie. Elle espère aider les gens à résoudre leurs problèmes et à réussir en ligne. Chaimaa est une cinéphile qui adore les chats et l'analyse des films.