|
|
|
|
|
|
Les signaux SIGKILL et SIGSTOP ne peuvent
ni capturés ni ignorés.
Ensuite, les signaux non décrits par
POSIX.1, mais présents dans les
spécifications SUSv2 et SUSv3 / POSIX
1003.1-2001 :
|
|
l c c l ____ lB c c l. Signal
|
|
Valeur
|
|
Action
|
|
Commentaire SIGBUS
|
|
|
|
|
10,7,10
|
|
Core
|
Erreur de Bus. SIGPOLL
|
|
|
|
|
|
|
Term
|
Synonyme de SIGIO (System V). SIGPROF
|
|
|
|
|
|
|
27,27,29
|
|
Term
|
Horloge pour le suivi SIGSYS
|
|
|
|
|
|
12,−,12
|
|
Core
|
Mauvais argument de fonction (System V) SIGTRAP
|
|
|
|
|
|
5
|
Core
|
Point d’arrêt rencontré.
SIGURG
|
|
|
|
|
|
|
16,23,21
|
|
Ign
|
Condition urgente sur socket (4.2 BSD). SIGVTALRM
|
|
|
|
|
|
26,26,28
|
|
Term
|
Alarme virtuelle (4.2 BSD). SIGXCPU
|
|
|
|
|
|
24,24,30
|
|
Core
|
Limite de temps CPU dépassée
(4.2 BSD). SIGXFSZ
|
|
|
|
|
|
25,25,31
|
|
Core
|
Taille de fichier excessive (4.2 BSD).
|
|
|
|
Jusqu’Ã Linux 2.2 inclus, l’action par
défaut pour SIGSYS, SIGXCPU,
SIGXFSZ, et (sur les architectures autres que Sparc
ou Mips) SIGBUS était de terminer
simplement le processus, sans fichier core. (Sur certains
Unix, l’action par défaut pour
SIGXCPU et SIGXFSZ est de finir le processus
sans fichier core). Linux 2.4 se conforme à Posix
1003.1-2001 pour ces signaux, et termine le processus avec
un fichier core.
Puis quelques signaux divers :
|
|
l c c l ____ lB c c l. Signal
|
|
Valeur
|
|
Action
|
|
Commentaire SIGIOT
|
|
|
|
|
6
|
Core
|
Arrêt IOT. Un synonyme de SIGABRT.
SIGEMT
|
|
|
|
|
|
|
7,−,7
|
|
Term SIGSTKFLT
|
|
|
|
|
|
|
-,16,-
|
|
Term
|
Erreur de pile sur coprocesseur
(inutilisé). SIGIO
|
|
|
|
|
|
23,29,22
|
|
Term
|
E/S Ã nouveau possible(4.2 BSD). SIGCLD
|
|
|
|
|
|
-,-,18
|
|
Ign
|
Synonyme de SIGCHLD. SIGPWR
|
|
|
|
|
|
29,30,19
|
|
Term
|
Chute d’alimentation (System V). SIGINFO
|
|
|
|
|
|
29,-,-
|
|
|
Synonyme de SIGPWR SIGLOST
|
|
|
|
|
|
-,-,-
|
|
Term
|
Perte de verrou de fichier. SIGWINCH
|
|
|
|
|
|
28,28,20
|
|
Ign
|
Fenêtre redimensionnée (4.3
BSD, Sun). SIGUNUSED
|
|
|
|
|
|
-,31,-
|
|
Term
|
Signal inutilisé (sera SIGSYS).
|
|
|
|
(Le signal 29 est est SIGINFO / SIGPWR sur
Alpha mais SIGLOST sur Sparc).
SIGEMT n’est pas
spécifié par Posix 1003.1-2001
mais apparaît néanmoins sur la
plupart des Unix, avec une action par défaut
typique correspondant à une fin du processus avec
fichier core.
SIGPWR (non spécifié
dans Posix 1003.1-2001) est typiquement ignoré
sur les autres Unix où il
apparaît.
SIGIO (non sécifié par
Posix 1003.1-2001) est ignoré par
défaut sur plusieurs autres Unix.
|
|
Linux supporte les signaux temps-réel tels
qu’ils ont été
définis à l’origine dans les
extentions temps-réel Posix.4 (et inclus
à présent dans Posix 1003.1-2001). Linux
supporte 32 signaux temps-réel
numéroté de 32 (SIGRTMIN)
à 63 (SIGRTMAX). (Les applications doivent
toujours se référer aux signaux
temps-réel en utilisant la notation
SIGRTMIN+n, car la plage des numéros des
signaux varie suivant les Unix).
Contrairement aux signaux standards, les signaux
temps-réel n’ont pas de signification
prédéfinie : l’ensemble
complet de ces signaux peut être
utilisée à des fins
spécifiques à l’application.
(Notez quand même que
l’implémentation LinuxThreads utilise les
trois premiers signaux temps-réel).
L’action par défaut pour un signal
temps-réel non capturé est de
terminer le processus récepteur.
Les signaux temps-réel se distinguent de
leurs homologues classiques ainsi :
|
|
1.
|
|
Plusieurs instances d’un signal
temps-réel peuvent être
empilées. Au contraire, si plusieurs instances
d’un signal standard arrivent alors qu’il est
bloqué, une seule instance sera
mémorisée.
|
|
2.
|
|
Si le signal est envoyé en utilisant
sigqueue(2), il peut être
accompagné d’une valeur (un entier ou un
pointeur). Si le processus récepteur positionne
un gestionnaire en utilisant l’attribut
SA_SIGACTION de l’appel sigaction(2)
alors il peut accéder à la valeur
transmise dans le champ si_value de la structure
siginfo_t passée en second argument au
gestionnaire. De plus, les champs si_pid et
si_uid de cette structure fournissent le PID et
l’UID réel du processus
émetteur.
|
|
3.
|
|
Les signaux temps-réel sont
délivrés dans un ordre
précis. Les divers signaux
temps-réel du même type sont
délivrés dans l’ordre
où ils ont été
émis. Si différents signaux
temps-réel sont envoyés au
processus, ils sont délivrés en
commençant par le signal de numéro
le moins élevé (le signal de plus
fort numéro est celui de priorité
la plus faible).
|
|
Si des signaux standards et des signaux
temps-réel sont simultanément en
attente pour un processus, Posix ne précise pas
d’ordre de délivrance. Linux, comme
beaucoup d’autres implémentations, donne
priorité aux signaux temps-réel
dans ce cas.
D’après Posix, une
implémentation doit permettre
l’empilement d’au moins _POSIX_SIGQUEUE_MAX (32)
signaux pour un processus. Néanmoins,
plutôt que de fixer une limite par processus,
Linux impose une limite pour l’ensemble des signaux
empilés sur le système pour tous
les processus. Cette limite peut être
consultée, et modifiée (avec les
privilèges adéquats)
grâce au fichier This limit can be viewed (and
with privilege) changed via the
/proc/sys/kernel/rtsig-max. Un fichier
associé, /proc/sys/kernel/rtsig-max,
indique combien de signaux temps-réel sont
actuellement empilés.
|
CONFORMITÃ
BOGUES
|
SIGIO et SIGLOST ont la même
valeur, le dernier est mis en commentaire dans les sources
du noyau, mais certaines applications
considèrent encore que le signal 29 est
SIGLOST.
|
VOIR AUSSI
|
kill(1), kill(2), setitimer(2)
sigaction(2), signal(2),
sigprocmask(2), sigqueue(2)
|
TRADUCTION
|
signal(7) |
|
|