Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
23 mai 2010

Linux           Manipuler les processus


Signaux - présentation

Signaux - présentation

Introduction aux signaux sous linux

   Ceci est une présentation très sommaire des signaux sous linux, je ne détail ici que les signaux standard. Linux supporte supporte à la fois les signaux POSIX classiques ("signaux standards") et les signaux POSIX temps-réel. Chaque signal a une disposition courante, qui détermine comment le processus agit quand il reçoit le signal. Les entrées dans la colonne action des tables ci-dessous spécifient la disposition par défaut pour chaque signal:

Term L'action par défaut est de terminer le processus
Ign L'action par défaut est d'ignorer le signal
Core L'action par défaut est de termine le processus et dumper le core
Stop L'action par défaut est de stopper le processus
Cont L'action par défaut est de continuer un processus qui est stoppé.

   Un processus peut changer la disposition d'un signal. La disposition d'un signal est un attribut par processus : dans une application multi-thread, la disposition d'un signal particulier est le même pour tous les thread.

Signaux standard

Linux supporte les signaux standard ci-dessous. De nombreux signaux dépendent de l'architecture.
Signal_____Valeur_____Action_____Commentaire
SIGHUP_______1________Term_______Raccrochement (déconnexion) sur terminal de contrôle, ou mort du processus de contrôle
SIGINT_______2________Term_______Interruption depuis le clavier.
SIGQUIT______3________Core_______Demande 'Quitter' depuis le clavier.
SIGILL_______4________Core_______Instruction illégale.
SIGABRT______6________Core_______Signal d'arrêt depuis abort(3).
SIGFPE_______8________Core_______Erreur mathématique virgule flottante.
SIGKILL______9________Term_______Signal 'KILL'.
SIGSEGV_____11________Core_______Référence mémoire invalide.
SIGPIPE_____13________Term_______Ecriture dans un tube sans lecteur.
SIGALRM_____14________Term_______Temporisation alarm(2) écoulée.
SIGTERM_____15________Term_______Signal de fin.
SIGUSR1_____10________Term_______Signal utilisateur 1.
SIGUSR2_____12________Term_______Signal utilisateur 2.
SIGCHLD_____17________Ign________Fils arrêté ou terminé.
SIGCONT_____18________Cont_______Continuer si arrêté.
SIGSTOP_____19________Stop_______Arrêt du processus.
SIGTSTP_____20________Stop_______Stop invoqué depuis tty.
SIGTTIN_____21________Stop_______Lecture sur tty en arrière-plan.
SIGTTOU_____22________Stop_______Ecriture sur tty en arrière-plan.

D'autres signaux divers


Signal_____Valeur_____Action_____Commentaire
SIGBUS_______7_________Core_______Erreur de Bus.
SIGPOLL________________Term_______Synonyme de SIGIO (System V).
SIGPROF_____27_________Term_______Profile alarm clock.
SIGSYS_________________Core_______Mauvais argument de routine (SVID).
SIGTRAP______5_________Core_______Trace/breakpoint trap
SIGURG______23_________Ign________Condition urgente sur socket (4.2 BSD).
SIGVTALRM___26_________Term_______Alarme virtuelle (4.2 BSD).
SIGXCPU_____24_________Core_______Limite de temps CPU dépassée (4.2 BSD).
SIGXFSZ_____25_________Core_______Taille de fichier excessive (4.2 BSD).
SIGIOT_______6_________Core_______Arrêt IOT. Un synonyme de SIGABRT.
SIGEMT_________________Term_______
SIGSTKFLT___16_________Term_______Erreur de pile sur coprocesseur.
SIGIO_______29_________Term_______E/S à nouveau possible(4.2 BSD).
SIGCLD_________________Ign________Synonyme de SIGCHLD.
SIGPWR______30_________Term_______Chute d'alimentation (System V).
SIGINFO___________________________Synonyme de SIGPWR
SIGLOST________________Term_______Perte de verrou de fichier.
SIGWINCH____28_________Ign________Fenêtre redimensionnée (4.3 BSD, Sun).
SIGUNUSED___31_________Term_______Signal inutilisé.

   Note: La valeur correspond aux architectures ia32, ia64, ppc s390 arm et sh

Signaux temps réel

   Linux supporte 32 signaux temps réels, numérotés de 33 à 64. À la différence des signaux standard, les signaux temps réels n'ont pas de signification prédéfinis, ils sont définis par les applications.