Bases de Linux et de la ligne de commande
Pour arrêter un processus qui ne répond plus, il est conseillé d'utiliser d'abord « kill <ID du processus> », et de n'utiliser « kill -9 <ID du processus> » que si cela ne suffit pas à le terminer. Quelle en est la raison ?
- ALe SIGTERM par défaut (numéro 15) peut être reçu par le processus, qui peut alors faire le ménage avant de se terminer, alors que SIGKILL (numéro 9) ne peut pas être reçu et le termine de force, sans aucun nettoyage
- BLe SIGTERM (numéro 15), que kill envoie par défaut, termine tout, y compris les processus enfants, alors que SIGKILL (numéro 9) ne termine que le processus indiqué et a donc moins de conséquences
- CSIGKILL (numéro 9) peut être reçu par le processus, qui peut alors faire le ménage avant de se terminer, alors que le SIGTERM (numéro 15), que kill envoie par défaut, ne peut pas être ignoré et le termine immédiatement
Afficher la réponse et l'explication
Réponse : A. Le SIGTERM par défaut (numéro 15) peut être reçu par le processus, qui peut alors faire le ménage avant de se terminer, alors que SIGKILL (numéro 9) ne peut pas être reçu et le termine de force, sans aucun nettoyage
Un signal Unix est une courte notification par laquelle le système d'exploitation informe un processus d'un événement ; chaque signal a un numéro et un nom fixés. Sans option, kill envoie SIGTERM (numéro 15) ; un programme peut prévoir une routine qui le reçoit (un gestionnaire, ou handler) pour enregistrer les fichiers en cours ou supprimer les fichiers temporaires avant de se terminer. SIGKILL (numéro 9) ne peut être ni reçu ni ignoré par le processus, et le noyau le termine de force : des fichiers à moitié écrits peuvent alors rester corrompus. L'ID du processus à arrêter se trouve avec ps ou top.
Continuer : 9 autres questions sur Bases de Linux et de la ligne de commande