Explication détaillée de la commande Linux kill_Linux

2020-05-16

Le but de la commande kill

La commande kill est facile à comprendre, pensant qu'elle est juste utilisée pour tuer des processus. Jetons un coup d'œil à l'explication de la page de manuel: kill-send un signal à un processus.

Il n'est pas difficile de voir d'après l'explication officielle que kill est une commande pour envoyer un signal à un processus. Bien sûr, nous pouvons envoyer un signal au processus pour arrêter l'exécution, et la commande kill à ce moment est en effet méritée. En fait, si nous ne transmettons pas le paramètre signal à la commande kill, il enverra un signal au processus pour terminer le processus par défaut! Il s'agit de l'utilisation principale de la commande kill, ainsi que du contenu de cet article.

Dans des circonstances normales, utilisez Ctrl + C pour terminer un processus de premier plan. Pour un processus en arrière-plan, vous devez utiliser la commande kill pour terminer. Nous allons d'abord utiliser les commandes ps, top et autres pour obtenir le PID du processus, puis utiliser la commande kill pour tuer le processus.

format de commande kill


 tuer [options]  [...]

  […]: envoie le signal à tous les processus répertoriés.

 options:

   - : spécifiez le signal envoyé au processus, spécifiez le nom ou le numéro du signal.

   -l: liste les noms et numéros de tous les signaux
 
 

Détails de la commande kill

Afficher les signaux disponibles

Puisque la commande kill est utilisée pour envoyer des signaux au processus, voyons d'abord quels signaux peuvent être envoyés au processus.


 $ kill -l 
 

Beaucoup! Mais parmi ces signaux, seul le 9ème signal (SIGKILL) peut terminer le processus sans condition, d'autres processus de signal ont le droit d'ignorer. Et tant de signaux ne sont pas couramment utilisés. Nous expliquons ci-dessous la signification de plusieurs signaux couramment utilisés.

                                                                                                                                                                                               

Le tableau ci-dessus ne concerne que les signaux courants. Pour plus d'informations sur les signaux, reportez-vous au signal man 7. En général, rappelez-vous simplement la signification des trois signaux "1, 9, 15".

Commandes communes


 $ kill -15 pid 
 

Cette commande signale au processus de se terminer normalement. La soi-disant sortie normale fait référence à l'achèvement de la sortie selon le processus de sortie de l'application, afin que les ressources puissent être effacées et libérées. Par exemple, si le programme vim se ferme normalement, le fichier temporaire * .swp sera supprimé.

Étant donné que le signal 15 est le moyen correct de quitter le processus, il devrait également être le moyen le plus courant, nous pouvons donc omettre le paramètre -15.


 $ kill pid 
 

Cette commande est équivalente à la commande ci-dessus. La commande kill envoie le signal 15 au processus cible par défaut.

Lorsque le processus a un état anormal et ne peut pas être quitté normalement par le signal 15, nous devons directement terminer le processus par des moyens extraordinaires. Le moyen dit extraordinaire est de transmettre le signal 9 au processus cible!


 $ kill -9 pid 
 

Ce processus ne nettoiera pas les ressources, donc si vous l'utilisez pour terminer le processus vim, vous constaterez que le fichier temporaire * .swp n'a pas été supprimé.

Résumé

Le signal 15 est sûr et le signal 9 est le dernier recours pour gérer les processus anormaux.

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun, et j'espère que tout le monde le soutiendra.

www.xd1998.com@2001-2030Partage De Technologie
Code
      
Nom Contenu
1
      
SIGHUP Démarrez le programme terminé, permettant au processus de relire son propre fichier de configuration, similaire au redémarrage.
2 SIGINT équivaut à taper [ctrl] -c sur le clavier pour interrompre un programme.
9 SIGKILL signifie interrompre de force la progression d'un programme. Si le programme est à mi-parcours, la partie inachevée peut être un "semi-produit", similaire à vim, il y aura .filename.swp réservé.
15 SIGTERM Terminez le programme normalement. Puisqu'il s'agit d'une résiliation normale, les actions ultérieures le complèteront. Cependant, s'il y a un problème avec le programme, il est inutile de saisir ce signal lorsqu'il ne peut pas être terminé en utilisant des méthodes normales.
19 SIGSTOP équivaut à taper [ctrl] -z avec le clavier pour suspendre un programme.