SIGKILL ne manque jamais de tuer un processus en cours, c'est le point. D'autres signaux existent pour donner à l'application une chance de réagir.
Le comportement par défaut de SIGINT, SIGTERM, SIGQUIT et SIGHUP est de tuer le programme. Cependant, les applications sont autorisées à installer un gestionnaire pour ces signaux. Ainsi, le comportement réel des applications lorsqu'elles reçoivent ces signaux est une question de convention (que chaque application peut suivre ou non), pas de conception de système.
SIGINT est le «plus faible» du lot. Sa signification conventionnelle est «arrêtez ce que vous faites en ce moment et attendez d'autres commentaires de l'utilisateur». C'est le signal généré par Ctrl+ Cdans un terminal. Les programmes non interactifs le traitent généralement comme SIGTERM.
SIGTERM est le signal de mise à mort «normal». Il indique à l'application de quitter proprement. L'application peut prendre du temps pour enregistrer son état, pour libérer des ressources telles que des fichiers temporaires qui autrement resteraient en arrière, etc. Une application qui ne souhaite pas être interrompue pendant une application critique peut ignorer SIGTERM pendant un certain temps.
SIGHUP est à peu près identique à SIGTERM en termes de dureté, mais il a un rôle spécifique car il est automatiquement envoyé aux applications s'exécutant dans un terminal lorsque l'utilisateur se déconnecte de ce terminal (étymologiquement, car l'utilisateur se connectait via une ligne téléphonique et le modem pendu). SIGHUP est souvent involontaire, contrairement à SIGTERM qui doit être envoyé explicitement, les applications doivent donc essayer de sauvegarder leur état sur un SIGHUP. SIGHUP a également une signification conventionnelle complètement différente pour les applications non destinées à l'utilisateur ( démons ), qui est de recharger leur fichier de configuration.
SIGQUIT est le plus dur des signaux ignorables. Il est destiné à être utilisé lorsqu'une application se comporte mal et doit être supprimée maintenant, et par défaut, elle laisse traditionnellement un fichier de vidage de mémoire (les systèmes modernes où la plupart des utilisateurs ne savent pas ce qu'est un fichier de base ont tendance à ne pas les produire par défaut) . Les applications peuvent définir un gestionnaire mais ne devraient pas faire grand-chose (en particulier, ne pas enregistrer d'état) car l'intention de SIGQUIT est d'être utilisée lorsque quelque chose ne va vraiment pas.
HUP
ne signifie pas nécessairement que le programme se fermera. Certains programmes utilisentSIGHUP
pour recharger les fichiers de configuration.SIGKILL
échoue, ou plutôt est reporté, lorsque le processus est en sommeil sans interruption .