Provided by: manpages-pl_20060617-4_all bug

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.