Maison  >  Article  >  Opération et maintenance  >  Quels signaux Linux a-t-il ?

Quels signaux Linux a-t-il ?

青灯夜游
青灯夜游original
2023-03-30 14:15:083666parcourir

Les signaux Linux incluent : 1. SIGHUP, utilisé pour arrêter le processus immédiatement, puis relire le fichier de configuration puis redémarrer ; 2. SIGINT, le signal d'abandon du programme, utilisé pour terminer le processus de premier plan ; signal de sortie du programme ; 4. SIGFPE, émis lorsqu'une erreur fatale d'opération arithmétique se produit ; 5. SIGKILL, utilisé pour terminer immédiatement l'exécution du programme ; 6. SIGALRM, signal de synchronisation d'horloge ; 7. SIGTERM, signal pour terminer le processus normalement ; 8. SIGCONT; 9. SIGSTOP, etc.

Quels signaux Linux a-t-il ?

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Que sont les signaux sous Linux

La gestion des processus fait principalement référence à la fermeture et au redémarrage des processus. Lorsque nous fermons ou redémarrons généralement un logiciel, nous fermons ou redémarrons son programme, plutôt que d'opérer directement le processus. Par exemple, pour redémarrer le service Apache, utilisez généralement la commande "service httpd restart" pour redémarrer le programme Apache.

Alors, Apache peut-il être arrêté ou redémarré en gérant directement le processus ? La réponse est oui, alors il faut se fier au signal du processus (Signal). Nous devons donner un numéro au processus et lui dire ce que nous voulons qu'il fasse.

Les signaux sont très importants dans le système d'exploitation Linux. Les signaux peuvent être générés à partir du clavier, générés par des conditions logicielles ou générés en appelant des exceptions matérielles. Il existe un total de 64 signaux dans Linux générés à partir d'appels de fonctions système. Les utilisateurs de Linux peuvent les visualiser via kill -l, comme suit

1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX

Les 32 premiers types sont appelés signaux non fiables. Ils sont généralement utilisés lorsque le logiciel ne prend pas en charge la mise en file d'attente. Les 32 types sont appelés signaux fiables et sont généralement utilisés pour prendre en charge la mise en file d'attente dans le matériel.

Signaux communs sous Linux

Code du signal Nom du signal Description
1 SIGHUP Ce signal provoque l'arrêt immédiat du processus. Puis relisez la configuration après le redémarrage du fichier
2 SIGINT Signal d'abandon du programme, utilisé pour terminer le processus de premier plan. Équivalent à la touche de raccourci de sortie Ctrl+C
3 SIGQUIT Signal de sortie du programme (identique à Ctrl +)
8 SIGFPE Émis lorsqu'une erreur fatale d'opération arithmétique se produit. Il inclut non seulement les erreurs d'opération en virgule flottante, mais également toutes les autres erreurs d'opération arithmétique telles que le débordement et la division par 0.
9 SIGKILL est utilisé pour terminer le programme immédiatement. Ce signal ne peut pas être bloqué, traité ou ignoré. Généralement utilisé pour terminer de force le processus
14 SIGALRM signal de synchronisation d'horloge, qui calcule l'heure réelle ou l'heure de l'horloge. La fonction d'alarme utilise ce signal
15 SIGTERM pour terminer le processus normalement et constitue le signal par défaut de la commande kill. Si un problème est survenu dans le processus, alors ce signal ne peut pas terminer le processus normalement. Ce n'est qu'alors que nous essaierons le signal SIGKILL, qui est le signal 9
18 SIGCONT . processus. Ce signal ne peut pas être bloqué
19 SIGSTOP Ce signal peut suspendre le processus de premier plan, ce qui équivaut à saisir la touche de raccourci Ctrl+Z. Ce signal ne peut pas être bloqué

Les signaux KILL, STOP ne peuvent pas être bloqués, ignorés ou capturés.

Terme signifie mettre fin au processus. Core signifie mettre fin au processus et vider le noyau. Stop suspend le thread, Cont reprend le thread suspendu.

Utilisations courantes des signaux communs

  • SIGHUP

    Ce signal est émis lorsque la connexion du terminal utilisateur (normale ou anormale) se termine, généralement lorsque le processus de contrôle du terminal se termine, pour notifier divers travaux au cours de la même session, à à ce stade, ils ne sont plus associés au terminal de contrôle.

    Lors de la connexion à Linux, le système attribuera une session de terminal à l'utilisateur connecté. Tous les programmes exécutés dans ce terminal, y compris le groupe de processus de premier plan et le groupe de processus d'arrière-plan, appartiennent généralement à cette session. Lorsque l'utilisateur se déconnecte de Linux, le groupe de processus de premier plan et le processus d'arrière-plan qui envoient une sortie au terminal recevront le signal SIGHUP.

    L'opération par défaut de ce signal est de terminer le processus, donc après la déconnexion, les processus avant et arrière et les processus avec sortie du terminal en arrière-plan seront terminés.

    Mais vous pouvez capturer ce signal. Par exemple, wget peut capturer le signal SIGHUP et l'ignorer. De cette façon, wget peut continuer le téléchargement même si vous vous déconnectez de Linux.

    De plus, pour un démon déconnecté du terminal, ce signal est utilisé pour lui notifier de relire le fichier de configuration.

    Par exemple, envoyer un signal HUP au processus nginx peut actualiser la configuration.

  • SIGINT : signal de fin de programme (interruption), émis lorsque l'utilisateur tape le caractère INTR (généralement Ctrl-C), utilisé pour avertir le groupe de processus de premier plan de terminer le processus.

  • SIGQUIT : similaire à SIGINT, mais contrôlé par le caractère QUIT (généralement Ctrl-). Le processus générera un fichier core lors de la sortie en raison de la réception de SIGQUIT, ce qui est similaire à un signal d'erreur de programme dans ce sens.

  • SIGTERM : 

    Signal de fin de programme (terminé). Contrairement à SIGKILL, ce signal peut être bloqué et traité. Il est généralement utilisé pour exiger que le programme se termine normalement de lui-même, permettant au processus d'effectuer le travail de nettoyage nécessaire avant de quitter.

    La commande shell kill génère ce signal par défaut. Si le processus ne peut pas être terminé, nous essaierons SIGKILL.

  • SIGTERM permet au processus de se terminer correctement. Si le processus lui-même n'est pas fluide, utilisez SIGKILL pour l'aider à se terminer correctement.

  • SIGCONT : Laisser un processus arrêté continuer à s'exécuter. Ce signal ne peut pas être bloqué. Vous pouvez utiliser un gestionnaire pour laisser le programme terminer un travail spécifique lorsqu'il passe de l'état arrêté pour continuer l'exécution.

  • SIGSTOP : arrête l'exécution du processus. Notez qu'il est différent de terminer et d'interrompre : le processus n'est pas encore terminé, mais l'exécution est suspendue. Ce signal ne peut pas être bloqué, traité ou ignoré

. La touche de raccourci Signal couramment utilisée

  • ctrl-c envoie le signal SIGINT à tous les processus du groupe de processus de premier plan. Souvent utilisé pour terminer un programme en cours d'exécution.

  • ctrl-z envoie le signal SIGTSTP à tous les processus du groupe de processus de premier plan, souvent utilisé pour suspendre un processus.

  • ctrl-d n'envoie pas de signal, mais représente une valeur binaire spéciale, indiquant EOF.

  • ctrl- Envoyez le signal SIGQUIT à tous les processus du groupe de processus de premier plan, terminez le processus de premier plan et générez des fichiers principaux.

Tuer le processus de premier planCtrl-z
Clé Fonction
Ctrl-cCtrl-c Kill foreground process
Ctrl-z Suspend foreground process
Ctrl-d Terminate input, or exit shell
Ctrl-s Suspend output
Ctrl-q Resume output
Ctrl-o Discard output
Ctrl-l

Suspendre le premier plan processus

Ctrl-d🎜🎜Terminer la saisie ou quitter le shell🎜🎜🎜🎜Ctrl-s🎜🎜Suspendre la sortie🎜🎜🎜🎜Ctrl- q🎜🎜Reprendre la sortie🎜🎜🎜🎜Ctrl-o🎜🎜Annuler la sortie🎜🎜🎜🎜Ctrl-l🎜🎜Effacer l'écran🎜🎜🎜🎜🎜 Recommandations associées : "🎜Tutoriel vidéo Linux🎜"🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn