Provided by:
manpages-pl_20060617-4_all 
NAZWA
signal - lista dostpnych sygnalow
OPIS
Linux wspiera zarowno rzeczywiste sygnaly POSIX-owe (zwane dalej
"sygnalami standardowymi"), jak i sygnaly POSIX-owe czasu
rzeczywistego.
Zachowania sygna/lu
Kady sygnal ma przypisane biece zachowanie, ktore okrela reakcj procesu
na dostarczony sygnal.
Wpisy w kolumnie "Akcja" tabeli okrelaj domylne zachowanie dla danego
sygnalu, jako jedno z nastpujcych:
Term Domyln akcj jest przerwanie procesu.
Ign Domyln akcj jest zignorowanie sygnalu.
Core Domyln akcj jest przerwanie procesu i zapisanie obrazu pamici
(patrz core(5)).
Stop Domyln akcj jest zatrzymanie procesu.
Cont Domyln akcj jest kontynuowanie procesu, jeeli jest obecnie
zatrzymany.
Proces moe zmieni zachowanie si sygnalu, uywajc sigaction(2) lub (mniej
przenonego) signal(2). Uywajc tych wywola systemowych, proces moe wybra
jedn z poniszych reakcji na dostarczenie sygnalu: wykona domyln akcj,
zignorowa sygnal, przej sygnal wykonujc akcj obs/lugi sygna/lu, czyli
podan przez programist funkcj, wywolywan automatycznie po dostarczeniu
sygnalu.
Zachowanie sygnalu jest atrybutem poszczegolnych procesow: w aplikacji
wielowtkowej zachowanie danego sygnalu jest takie samo dla wszystkich
wtkow.
Maska sygna/lu i sygna/ly oczekujce
Sygnal moe by zablokowany, co oznacza, e nie zostanie dostarczony,
dopoki si go nie odblokuje. Sygnal jest nazywany oczekujcym, jeeli
zostal ju wygenerowany, ale nie zostal jeszcze dostarczony.
Kady wtek procesu ma swoj niezalen mask sygna/l'ow, okrelajc zbior
sygnalow obecnie blokowanych przez wtek. Wtek moe zmienia mask
sygnalow, uywajc pthread_sigmask(3). Tradycyjna, jednowtkowa aplikacja
moe do tego celu uy sigprocmask(2).
Sygnal moe by wygenerowany (i w zwizku z tym oczekujcy) dla procesu
jako caloci (np. wyslany za pomoc kill(2)) lub dla okrelonego wtku (np.
skierowane do wtku s niektore sygnaly, takie jak SIGSEGV lub SIGPFPE,
generowane w konsekwencji uycia okrelonej instrukcji jzyka maszynowego
oraz sygnaly wyslane za pomoc pthread_kill(2)). Sygnal skierowany do
procesu moe by dostarczony do ktoregokolwiek z jego wtkow, ktory nie
blokuje tego sygnalu. Jeeli wicej ni jeden wtek nie blokuje sygnalu, to
jdro dostarczy sygnal do przypadkowo wybranego wtku.
Wtek moe pobra zbior obecnie oczekujcych sygnalow, uywajc
sigpending(2). Zbior ten bdzie zawieral sygnaly oczekujce skierowane
zarowno do calego procesu, jak i do wywolujcego wtku.
Sygna/ly standardowe
Linux wspiera wymienione poniej sygnaly standardowe. Numery niektorych
sygnalow zale od architektury, co pokazano w kolumnie "Warto". (Jeeli
podano trzy wartoci, to zazwyczaj pierwsza obowizuje dla architektur
alpha i sparc, rodkowa dla i386, ppc i sh, a ostatnia dla mips. Znak -
oznacza, e sygnal dla danej architektury nie wystpuje.)
Najpierw sygnaly opisane w pierwotnym standardzie POSIX.1.
Sygnal Warto Akcja Komentarz
-----------------------------------------------------------------------------
SIGHUP 1 Term Zawieszenie wykryte na terminalu kontrolujcym
lub mier procesu kontrolujcego
SIGINT 2 Term Przerwanie nakazane z klawiatury
SIGQUIT 3 Core Wyjcie nakazane z klawiatury
SIGILL 4 Core Nielegalna instrukcja
SIGABRT 6 Core Sygnal abort od abort(3)
SIGFPE 8 Core Wyjtek zmiennoprzecinkowy
SIGKILL 9 Term Sygnal Kill
SIGSEGV 11 Core Nieprawidlowa referencja pamiciowa
SIGPIPE 13 Term Uszkodzony potok: zapis do potoku bez odbiorcow
SIGALRM 14 Term Sygnal timera od alarm(2)
SIGTERM 15 Term Sygnal zakoczenia pracy
SIGUSR1 30,10,16 Term Sygnal 1 uytkownika
SIGUSR2 31,12,17 Term Sygnal 2 uytkownika
SIGCHLD 20,17,18 Ign Potomek zatrzymal si lub zakoczyl prac
SIGCONT 19,18,25 Cont Kontynuuj, jeli si zatrzymal
SIGSTOP 17,19,23 Stop Zatrzymaj proces
SIGTSTP 18,20,24 Stop Zatrzymanie napisane z tty
SIGTTIN 21,21,26 Stop Wejcie tty dla procesu w tle
SIGTTOU 22,22,27 Stop Wyjcie tty dla procesu w tle
Sygnalow SIGKILL oraz SIGSTOP nie mona przechwyci, zablokowa ani
zignorowa.
Nastpnie sygnaly nie wystpujce w standardzie POSIX.1, ale opisane w
SUSv2 lub w SUSv3 / POSIX 1003.1-2001.
Sygnal Warto Akcja Komentarz
----------------------------------------------------------------------------------
SIGBUS 10,7,10 Core Bld szyny (nieprawidlowy dostp do pamici)
SIGPOLL Term Zdarzenie odpytywalne (Sys V). Synonim SIGIO
SIGPROF 27,27,29 Term Przeterminowanie zegara profilowego
SIGSYS 12,-,12 Core Niewlaciwy argument funkcji (SVID)
SIGTRAP 5 Core ledzenie/pulapka kontrolna
SIGURG 16,23,21 Ign Pilny warunek na gniedzie (BSD 4.2)
SIGVTALRM 26,26,28 Term Wirtualny zegar alarmu (BSD 4.2)
SIGXCPU 24,24,30 Core Przekroczone ograniczenie czasu CPU (BSD 4.2)
SIGXFSZ 25,25,31 Core Przekroczone ograniczenie rozmiaru pliku (BSD 4.2)
Do wersji 2.2 Linuksa (wlcznie) domylne zachowanie dla sygnalow SIGSYS,
SIGXCPU, SIGXFSZ oraz (na architekturach innych ni SPARC i MIPS) SIGBUS
polegalo na przerwaniu procesu (bez zrzutu pamici). (W niektorych
innych Uniksach domylne zachowanie dla SIGXCPU i SIGXFSZ polega na
przerwaniu procesu bez zrzutu pamici). Linux 2.4 jest zgodny ze
wymaganiami standardu POSIX 1003.1-2001 w zakresie przerywania procesu
ze zrzutem pamici.
A teraz rone inne sygnaly.
Sygnal Warto Akcja Komentarz
---------------------------------------------------------------------------
SIGIOT 6 Core pulapka IOT. Synonim SIGABRT
SIGEMT 7,-,7 Term
SIGSTKFLT -,16,- Term Bld stosu koprocesora (nieuywany)
SIGIO 23,29,22 Term I/O teraz moliwe (BSD 4.2)
SIGCLD -,-,18 Ign Synonim SIGCHLD
SIGPWR 29,30,19 Term Bld zasilania (System V)
SIGINFO 29,-,- Synonim SIGPWR
SIGLOST -,-,- Term Utracono blokad pliku
SIGWINCH 28,28,20 Ign Sygnal zmiany rozmiarow okna (BSD 4.3, Sun)
SIGUNUSED -,31,- Term Nie uyty sygnal (wystpi SIGSYS)
(Sygnal 29 oznacza SIGINFO / SIGPWR na architekturze alpha, lecz
SIGLOST na architekturze sparc).
SIGEMT nie jest wymieniony w POSIX 1003.1-2001, lecz pomimo to pojawia
si w wikszoci innych Uniksow. Domyln akcj dla tego sygnalu jest
zazwyczaj przerwanie procesu ze zrzutem pamici.
SIGPWR (nie wymieniony w POSIX 1003.1-2001) jest zazwyczaj domylnie
ignorowany w tych Uniksach, w ktorych wystpuje.
SIGIO (nie wymieniony w POSIX 1003.1-2001) jest domylnie ignorowany w
niektorych innych Uniksach.
Sygna/ly czasu rzeczywistego
Linux wspiera sygnaly czasu rzeczywistego zdefiniowane pierwotnie w
rozszerzeniu dla czasu rzeczywistego POSIX.4 (a obecnie zawarte w POSIX
1003.1-2001). Linux wspiera 32 sygnaly czasu rzeczywistego, o numerach
od 32 (SIGRTMIN) do 63 (SIGRTMAX). (Programy powinny zawsze odwolywa si
do sygnalow czasu rzeczywistego uywajc notacji SIGRTMIN+n, gdy zakres
numerow sygnalow czasu rzeczywistego roni si pomidzy Uniksami).
W odronieniu od sygnalow standardowych, sygnaly czasu rzeczywistego nie
posiadaj predefiniowanego znaczenia: mona wykorzystywa caly zestaw
sygnalow czasu rzeczywistego do celow okrelonych w aplikacji. (Naley
jednak zauway, e implementacja LinuxThreads korzysta z trzech
pierwszych sygnalow czasu rzeczywistego).
Domyl akcj na nieobsluony sygnal czasu rzeczywistego jest przerwanie
procesu, ktory go otrzymal.
Sygnaly czasu rzeczywistego s rozpoznawane w nastpujcy sposob:
1. Mona kolejkowa wiele egzemplarzy sygnalu czasu rzeczywistego. Dla
odronienia, jeli w czasie gdy standardowy sygnal jest blokowany
zostanie dorczonych wiele egzemplarzy tego sygnalu, tylko jeden
egzemplarzy trafia do kolejki.
2. Jeli sygnal wyslano korzystajc z sigqueue(2), mona wysla wraz z tym
sygnalem warto towarzyszc (calkowit lub wskanik). Jeli proces
otrzymujcy ustanawia funkcj obslugi dla tego sygnalu za pomoc
znacznika SA_SIGACTION funkcji sigaction(2), to otrzymuje
towarzyszc mu dan za porednictwem pola si_value struktury siginfo_t
przekazanej jako drugi argument funkcji obslugi. Ponadto, pola
si_pid oraz si_uid tej struktury mog sluy do otrzymania PID oraz
rzeczywistego ID uytkownika procesu wysylajcego sygnal.
3. Sygnaly czasu rzeczywistego s dorczane w zagwarantowanej kolejnoci.
Sygnaly czasu rzeczywistego jednego rodzaju s dorczane w takiej
kolejnoci, w jakiej zostaly wyslane. Jeli do procesu zostan wyslane
rone sygnaly czasu rzeczywistego, bd one dorczone poczwszy od
sygnalu o najniszym numerze. (Tzn. sygnaly o niskich numerach maj
najwyszy priorytet).
POSIX nie okrela, ktore z sygnalow powinny zosta dorczone jako pierwsze
w sytuacji, gdy obsluenia wymagaj zarowno sygnaly standardowe, jak i
sygnaly czasu rzeczywistego. Linux, podobnie do innych implementacji,
daje w tym przypadku pierwszestwo sygnalom standardowym.
Zgodnie z POSIX, implementacja powinna zezwala na kolejkowanie do
procesu co najmniej _POSIX_SIGQUEUE_MAX (32) sygnalow czasu
rzeczywistego. Jednake, Linux zamiast okrela ograniczenie dla procesu,
wymusza ograniczenie ogolnosystemowe liczby kolejkowanych do wszystkich
procesow sygnalow czasu rzeczywistego. Ograniczenie to mona zobaczy, a
take (przy odpowiednich uprawnieniach) zmieni za porednictwem pliku
/proc/sys/kernel/rtsig-max. Podobnie, za porednictwem pliku
/proc/sys/kernel/rtsig-nr mona dowiedzie si ile sygnalow czasu
rzeczywistego jest aktualnie w kolejce. W Linuksie 2.6.8 ten interfejs
/proc zostal zastpiony limitem zasobow RLIMIT_SIGPENDING, ktory okrela
limit kolejkowanych sygnalow dla poszczegolnych uytkownikow; patrz
setrlimit(2) w celu uzyskania dalszych informacji.
ZGODNE Z
POSIX.1
B/LDY
SIGIO i SIGLOST maj t sam warto. Ten drugi jest zakomentowany w rodlach
jdra, lecz proces tworzenia niektorych aplikacji wci zaklada, e sygnal
29 to SIGLOST.
ZOBACZ TAKE
kill(1), kill(2), killpg(2), setitimer(2), setrlimit(2), sigaction(2),
signal(2), sigpending(2), sigprocmask(2), sigqueue(2), sigsuspend(2),
sigwaitinfo(2), raise(3), sigvec(3), sigset(3), strsignal(3), core(5),
proc(5), pthreads(7)
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.