GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tuer un processus ou arrêter un programme sous Linux

Lorsqu'un processus se comporte mal, vous pouvez parfois vouloir le terminer ou le tuer. Dans cet article, nous allons explorer quelques façons de terminer un processus ou une application à partir de la ligne de commande ainsi que d'une interface graphique, en utilisant gedit comme exemple d'application.

Utilisation des caractères de ligne de commande/terminaison

Ctrl + C

Un problème lors de l'appel de gedit depuis la ligne de commande (si vous n'utilisez pas gedit & ) est qu'il ne libérera pas l'invite, de sorte que la session shell est bloquée. Dans de tels cas, Ctrl+C (la touche Contrôle en combinaison avec 'C') est pratique. Cela mettra fin à gedit et tout le travail sera perdu (sauf si le fichier a été enregistré). Ctrl+C envoie le SIGINT signaler à gedit . Il s'agit d'un signal d'arrêt dont l'action par défaut est de terminer le processus. Il demande au shell d'arrêter gedit et revenez à la boucle principale, et vous récupérerez l'invite.

$ gedit
^C

Ctrl + Z

C'est ce qu'on appelle un caractère suspendu . Il envoie un SIGTSTP signal à traiter. C'est aussi un signal d'arrêt, mais l'action par défaut n'est pas de tuer mais de suspendre le processus.

Il arrêtera (tuera/terminera) gedit et renvoyez l'invite du shell.

   $ gedit
   ^Z
   [1]+  Stopped                 gedit
   $

Une fois le processus suspendu (dans ce cas, gedit ), il n'est pas possible d'écrire ou de faire quoi que ce soit dans gedit . En arrière-plan, le processus devient un travail . Cela peut être vérifié par les jobs commande.

  $ jobs
  [1]+  Stopped                 gedit

jobs vous permet de contrôler plusieurs processus au sein d'une même session shell. Vous pouvez arrêter, reprendre et déplacer les travaux en arrière-plan ou au premier plan selon vos besoins.

Reprenons gedit en arrière-plan et libérez une invite pour exécuter d'autres commandes. Vous pouvez le faire en utilisant le bg commande, suivi de l'ID du travail (notez [1] à partir de la sortie de jobs au dessus de. [1] est l'ID du travail).

   $ bg 1
   [1]+ gedit &

Ceci est similaire au démarrage de gedit avec &, :

   $ gedit &

Utiliser tuer

kill permet un contrôle précis des signaux, vous permettant de signaler un processus en spécifiant soit un nom de signal, soit un numéro de signal, suivi d'un ID de processus ou d'un PID.

Ce que j'aime chez kill est qu'il peut également fonctionner avec des ID de travail. Commençons gedit en arrière-plan en utilisant gedit & . En supposant que j'ai un ID de travail de gedit à partir des jobs commande, envoyons SIGINT à gedit :

   $ kill -s SIGINT %1

Notez que l'ID de tâche doit être précédé de % , ou kill le considérera comme un PID.

kill peut fonctionner sans spécifier explicitement un signal. Dans ce cas, l'action par défaut est d'envoyer SIGTERM , ce qui mettra fin au processus. Exécutez kill -l pour lister tous les noms de signaux et utiliser le man kill commande pour lire la page de manuel.

Utiliser killall

Si vous ne souhaitez pas spécifier d'ID de tâche ou de PID, killall vous permet de spécifier un processus par son nom. Le moyen le plus simple de terminer gedit en utilisant killall est :

   $ killall gedit

Cela tuera tous les processus avec le nom gedit . Comme kill , le signal par défaut est SIGTERM . Il a la possibilité d'ignorer la casse en utilisant -I :

   $ gedit &
   [1] 14852

   $ killall -I GEDIT
   [1]+  Terminated              gedit

Pour en savoir plus sur les différents drapeaux fournis par killall (comme -u , qui vous permet de tuer les processus appartenant à l'utilisateur) consultez la page de manuel (man killall )

Utiliser xkill

Avez-vous déjà rencontré un problème où un lecteur multimédia, tel que VLC, est grisé ou bloqué ? Vous pouvez maintenant trouver le PID et tuer l'application à l'aide de l'une des commandes répertoriées ci-dessus ou utiliser xkill .

xkill permet de tuer une fenêtre à l'aide d'une souris. Exécutez simplement xkill dans un terminal, ce qui devrait changer le curseur de la souris en un x ou une petite icône de crâne. Cliquez sur x sur la fenêtre que vous souhaitez fermer. Soyez prudent en utilisant xkill , cependant, comme l'explique sa page de manuel, cela peut être dangereux. Vous êtes prévenu !

Reportez-vous à la page de manuel de chaque commande pour plus d'informations. Vous pouvez également explorer des commandes telles que pkill et pgrep .


Linux
  1. Comment redémarrer (ou réinitialiser) un processus en cours d'exécution sous Linux ?

  2. Comment tuer un processus sous Linux en utilisant la commande ?

  3. Comment arrêter un processus d'écran sous Linux?

  4. Comment tuer un processus en cours d'exécution sur un port particulier sous Linux ?

  5. Comment arrêter manuellement un script Python qui s'exécute en continu sous Linux

Commande Kill sous Linux

Comment tuer les processus Zombie sous Linux

Comment tuer le processus Linux en cours d'exécution sur un port particulier

Comment trouver l'ID de processus d'un programme et le tuer [Astuce rapide]

Comment tuer un processus sous Linux

Comment tuer ou terminer un processus Linux :Le guide ultime