Linux cumanda sò signalazioni affidati POSIX (in seguitu "signalni standard") è POSIX signalamenti in tempu real.
Signali Standard
Linux hè soporta i signalazioni standard sottumessi. Parechji numeri di signale sò l'architettura dipende, cumu indicatu in a colonna "Value". (Oghje si trovanu trè valori, u primu hè spissu validu per l'alfa è sparc, u mezzu per i386, ppc è sh, è l'ultimu per mips.
A - denota chì un signalu hè ausente nantu à l'architettura pertinenti).
L'articuli in a columna di "Azione" di a tabella spicificanu l'azzione predica per u sinjalu, cum'è seguitu:
Terminu
Azione predicazione hè di finiscerà u prucessu.
Ign
Azione di predefinita hè di ignorà u sinjal.
Core
Azione predicazione hè di finiscerà u prucessu è u core di scomatura.
Stop
Azione predica hè di vultà u prucessu.
Prima i signalamenti deskritti in u standard POSIX.1 originale.
Signale | Value | Azione | Comment |
o morte di prucessu di cuntrollu | |||
SIGINT | 2 | Terminu | Interrupt from keyboard |
SIGQUIT | 3 | Core | Quit from keyboard |
SIGILL | 4 | Core | Istruzione Illegale |
SIGABRT | 6 | Core | Abort sign from abort (3) |
SIGFPE | 8 | Core | Cumpara flottante |
SIGKILL | 9 | Terminu | Kill signal |
SIGSEGV | 11 | Core | Una referenza in memoria invàlida |
SIGPIPE | 13 | Terminu | Più Broken: scrivite à pipe senza lettori |
SIGALRM | 14 | Terminu | Signore timore da alarma (2) |
SIGTERM | 15 | Terminu | Signal di terminazione |
SIGUSR1 | 30,10,16 | Terminu | U signalu definitu d'utilizatore 1 |
SIGUSR2 | 31,12,17 | Terminu | U sinatu definitu d'utilizatore 2 |
SIGCHLD | 20,17,18 | Ign | U zitellu hà firmatu o finitu |
SIGCONT | 19,18,25 | Continue s'ellu fermatu | |
SIGSTOP | 17,19,23 | Stop | Stop process |
SIGTSTP | 18,20,24 | Stop | Detite micca scrittu à u tty |
SIGTTIN | 21,21,26 | Stop | TTY input for background process |
SIGTTOU | 22,22,27 | Stop | tty output per u prucessu di fondu |
I signalli SIGKILL è SIGSTOP ùn ponu micca esse atturatu, bluccati o ignorati.
Appena i signalazioni ùn anu micca in u POSIX.1 standard ma scritte in SUSv2 è SUSv3 / POSIX 1003.1-2001.
Signale | Value | Azione | Comment |
SIGPOLL | Terminu | Circundante (Sys V). Synoniem di SIGIO | |
SIGPROF | 27,27,29 | Terminu | U timidoru prufilatu hà vultatu |
SIGSYS | 12, -, 12 | Core | Argumentu malu à a rutina (SVID) |
SIGTRAP | 5 | Core | Trace / puntata in trappa |
SIGURG | 16,23,21 | Ign | Cundizione urgente in socket (4.2 BSD) |
SIGVTALRM | 26,26,28 | Terminu | Reloj despertador (4.2 BSD) |
SIGXCPU | 24,24,30 | Core | Un límitu di CPU limitata (4.2 BSD) |
SIGXFSZ | 25,25,31 | Core | U limiti di u grandu di u file hè ridduutu (4.2 BSD) |
Finu à u Linux Linux 2.2, u cumpurtamentu predettu per SIGSYS , SIGXCPU , SIGXFSZ , è (nantu à l'architettura di l'altru SPARC è MIPS) SIGBUS era di finiscerà u prucessu (senza un core dump). (In un altru Unice chì l'accontu predeterminatu per SIGXCPU è SIGXFSZ hè di finiscerà u prucessu senza un core dump.) Linux 2.4 cumpriu cun u POSIX 1003.1-2001 esigenzi per esse signalhe, finalizando u prucessu cù un core dump.
Segnenti parechji signalazioni altri.
Signale | Value | Azione | Comment |
SIGEMT | 7, -, 7 | Terminu | |
SIGSTKFLT | -, 16, - | Terminu | Stack fault on coprocessor (micca usatu) |
SIGIO | 23,29,22 | Terminu | I / O now possible (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | Un sinonimu per SIGCHLD |
SIGPWR | 29,30,19 | Terminu | Falla di power (Sistema V) |
SIGINFO | 29, -, - | Un sinonimu per SIGPWR | |
SIGLOST | -, -, - | Terminu | Paghjella di schedariu perduta |
SIGWINCH | 28,28,20 | Ign | Finestra resize signal (4.3 BSD, Sun) |
SIGUNUSED | -, 31, - | Terminu | Signore inutilisé (se SIGSYS) |
(Signal 29 hè SIGINFO / SIGPWR nantu à una alfa ma SIGLOST à sparc).
SIGEMT ùn hè micca specificatu in POSIX 1003.1-2001, ma ùn anu parechje in a maiò parte Unice, induve a so azzione predeterminada hè tipica per finisce u prucessu cù un core dump.
SIGPWR (chì ùn hè micca specificatu in POSIX 1003.1-2001) hè tipicamenti ignoratu da u predefinitu in quessi Unice chì anu vistu.
SIGIO (chì ùn hè micca specificatu in POSIX 1003.1-2001) hè ignoratu da u regule predilettu in parechji altri Unice.
Signali in tempu real
U Linux accede à signalhi muderni in l'urigine cum'è originalmente definitu in POSIX.4 estensioni in tempu realu (è aghjustatu in POSIX 1003.1-2001). Linux cunnessione 32 signalhi realità, numerati da 32 ( SIGRTMIN ) à 63 ( SIGRTMAX ). (Programmi sempre avè sempre riferenu à i signali reali-tempu da a notazione SIGRTMIN + n, postu chì a varieghja di numeri di signale reali varia in Unice.)
A cuntrariu di i signali standard, signalamenti in tempu realu ùn anu micca significati predefiniti: u settore tutale di signalelli in tempu realu pò esse usatu per scopi prediletti d'applicazione. (Nota, però, chì l'implementazione LinuxThreads utilizeghja u primu trè signalhi real-time).
L'attività predeterminata per un signalu in tempu tempu senza manipule hè di finiscerà u prublema di ricivete.
I segni di tempu realitate sò distinti da questa:
- Esculenti multiplici di signalhi real-time pò esse in cola. Per cuntrastu, siate parechje esempii di un signalu standard sò entruti mentre chì u secondu hè oghji bluccatu, solu una sola instancia hè colera.
- Se u sinjalu hè mandatu u sigqueue (2), un valore d'accumpagnamentu (o un intudu o un puntero) pò esse mandatu cun u signale. Se u prucessu di ricivienta stabilisce un manighjante per questu signale cù u bandiera SA_SIGACTION à a sicura (2) pò pudè ottene dinù datu via u campu si_value di l'struttura siginfo_t passò com'è a seconda argumentu à u maniatore. Inoltre, i campi si_pidi è si_uid di sta struttura pò esse usatu per ottene u PID è l'identità di l'usu veru di u prucessu chì mandò u signalu.
- I sigiri in tempu realunu sò mandati in un ordine garantitu. Assicuranza multiplica di u tempu in u stessu tipu sò sparati in l'ordine chì sò stati mandati. Se se segni signalheli in tempu reale sò mandati à un prucessu, sò messi in partenza da u signalu più numeru. (Ie, i signali cun numeru più numeru).
Sì se sordichi standardu è in tempu realu sò stati pendenti per un prucessu, POSIX quiche sanu senza esse cose chì vene u primu. Linux, cum'è molti àutri implementazioni, dà priorità à i signali standard in stu casu.
Sicondu POSIX, una implementazione deve permette di almenu _POSIX_SIGQUEUE_MAX (32) signalhi in tempu real per è cussutu à u prucessu. Invece, invece di circà un limite per i prucessi, Linux impone un limite in un sistemu annantu à u numeru di signalhi in tempu culi in tutti i processi.
Questu limiti pò vede (è cun privilegiu) cambiatu in u schedariu / proc / sys / kernel / rtsig-max . Un schedariu cunnessu, / proc / sys / kernel / rtsig-max , pò esse usatu per sapè quanti quanti seculi attuale sò prisintati in cola.
PERFORMING TO RIMBI
POSIX.1
Impurtante: Utilizà l'ordine di u manu ( % man ) per vede cumu u cumandimu hè usatu in u vostru urdinatore particulari.