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 ?

  1. 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
  2. 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
  3. 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.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Pendant qu'un long ./sim.sh s'exécute dans un terminal, on veut utiliser d'autres commandes dans le même terminal. Que se passe-t-il si l'on appuie sur Ctrl+Z, puis qu'on exécute bg ?
  2. Sur un serveur auquel on s'est connecté par SSH, on a lancé un long traitement avec « ./run.sh & », puis, en fermant la connexion, le traitement s'est arrêté lui aussi. Quelle est la manière la plus appropriée de le lancer pour qu'il continue après la fermeture de la connexion ?
  3. Si l'on exécute les deux lignes ci-dessus dans un shell, quels caractères s'affichent ?
  4. Si l'on exécute dans l'ordre les commandes ci-dessus, quelle est la sortie des deux commandes echo ?
  5. Comme ci-dessus, on exécute le script s.sh avec des arguments. Quelle est la sortie ?