Signal - Linux / Unix Command

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:

  1. 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.
  2. 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.
  3. 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.