SIGQUIT est-il identique à SIGTERM?

13

J'apprends CentOS / RHEL et je travaille actuellement sur la gestion des processus.

Le livre de RHCSA que je lis décrit l'exécution kill 1234de l'envoi de SIGQUIT. J'ai toujours pensé que la commande kill sans ajouter de commutateur pour le type de signal devrait être par défautkill -15

SIGTERM est kill -15et SIGKILL l'est kill -9, non?

Est-ce que CentOS / RHEL utilise une méthode légèrement différente kill -15ou je viens de me tromper?

EDIT: kill -ldonne SIGQUIT as kill -3et il semble être associé à l'utilisation du clavier pour terminer un processus. man 7 signalindique également que SIGQUIT est kill -3, donc je ne peux que supposer que mon livre a tort en déclarant que SIGQUIT est kill -15par défaut.

bitofagoob
la source

Réponses:

13

Non, ce n'est pas pareil. L'action par défaut pour les deux est de terminer le processus, mais SIGQUITaussi de vider le core. Voir par exemple la page de manuel Linuxsignal(7) . killenvoie par défaut SIGTERM, donc je peux seulement imaginer que la mention de SIGQUIT comme défaut est en effet juste une erreur. Cette valeur par défaut est en POSIX , tout comme les numéros de SIGTERM, SIGKILL et SIGQUIT.

ilkkachu
la source
1
Ouais. Je pense que le livre se trompe car il répertorie également SIGQUIT comme -15. Le signal -15 est un moyen si bien établi de mettre fin à un processus dans le monde Linux, il ne fait aucun doute qu'il s'agit d'une erreur d'impression. Je marquerai votre réponse comme correcte. Merci d'avoir développé ce que fait SIGQUIT.
bitofagoob
1

Il y a deux commandes kill, une dans procps et une dans shell. Les deux utilisent SIGTERM par défaut. Pour procps kill, l'aide de la commande, la page de manuel et la source de kill (skill.c ligne 724 dans la dernière branche master) disent tous SIGTERM, ce qui est agréable de savoir qu'il est cohérent.

Une chose à retenir sur les signaux est une fois que vous commencez à dépasser le "groupe habituel" et que vous utilisez des systèmes un peu plus différents d'un système Linux x86, vous pouvez constater que les signaux ne sont pas là ou qu'ils ont des numéros différents. procps (et probablement beaucoup d'autres programmes) fait cuire les nombres au moment de la compilation (essentiellement quel que soit le fichier include, recherchez signum.h).

Pas de quoi s'inquiéter pour SIGTERM, comme le dit @ilkkachu, c'est dans POSIX.

Craig Small
la source
manpage for skill indique que la compétence et le snice sont obsolètes. Je me demande pourquoi ils n'ont pas été supprimés de l'espace utilisateur? Des informations intéressantes, en tout cas. Merci.
bitofagoob