Linux ndhukung sinyal POSIX sing dipercaya (sesawangan karo "sinyal standar") lan sinyal wektu nyata POSIX.
Sinyal standar
Linux ndhukung sinyal standar sing didhaptar ing ngisor iki. Sawetara nomer sinyal arsitektur gumantung, kaya sing dituduhake ing kolom "Value". (Endi telung angka sing diwenehi, sing paling dhisik biasane bener kanggo alpha lan sparc, sing tengah kanggo i386, ppc lan sh, lan sing terakhir kanggo mips.
A - nemtokake yen sinyal ora ana ing arsitektur sing cocog.)
Entri ing kolom "Tindakan" ing tabel nemtokake tumindak standar kanggo tandha, kaya mangkene:
Istilah
Tindakan standar kanggo ngakhiri proses kasebut.
Ign
Tindakan standar kanggo ngganggu sinyal kasebut.
Inti
Tindakan standar kanggo ngakhiri proses lan mbucal inti.
Mungkasi
Tindakan standar kanggo nyegah proses kasebut.
Pisanan sinyal kasebut diterangake ing standar POSIX.1 asli.
Sinyal | Nilai | Tindakan | Komentar |
utawa pati ngontrol proses | |||
SIGINT | 2 | Istilah | Gangguan saka keyboard |
SIGQUIT | 3 | Inti | Mundur saka keyboard |
SIGILL | 4 | Inti | Instruction ilegal |
SIGABRT | 6 | Inti | Nolak sinyal saka abort (3) |
SIGFPE | 8 | Inti | Pangecualian titik ngambang |
SIGKILL | 9 | Istilah | Isine sinyal |
SIGSEGV | 11 | Inti | Rujukan memori ora valid |
SIGPIPE | 13 | Istilah | Pipis pipa: tulis menyang pipa tanpa pembaca |
SIGALRM | 14 | Istilah | Wektu sinyal saka weker (2) |
SIGTERM | 15 | Istilah | Sinyal pemutusan |
SIGUSR1 | 30,10,16 | Istilah | Sinyal sing ditemtokake pengguna 1 |
SIGUSR2 | 31,12,17 | Istilah | Sinyal sing ditemtokake pengguna 2 |
SIGCHLD | 20,17,18 | Ign | Anak mandheg utawa mungkasi |
SIGCONT | 19,18,25 | Terus yen mandheg | |
SIGSTOP | 17,19,23 | Mungkasi | Mungkasi proses |
SIGTSTP | 18,20,24 | Mungkasi | Mungkasi diketik ing tty |
SIGTTIN | 21,21,26 | Mungkasi | input tty kanggo proses latar mburi |
SIGTTOU | 22,22,27 | Mungkasi | tty output kanggo proses latar mburi |
Sinyal SIGKILL lan SIGSTOP ora bisa dicekel, diblokir, utawa diabaikan.
Sabanjure tandha ora ing standar POSIX.1 nanging kasebut ing SUSv2 lan SUSv3 / POSIX 1003.1-2001.
Sinyal | Nilai | Tindakan | Komentar |
SIGPOLL | Istilah | Acara Pollable (Sys V). Sinonim saka SIGIO | |
SIGPROF | 27,27,29 | Istilah | Timer profil wis kadaluwarsa |
SIGSYS | 12, -, 12 | Inti | Benturan tumrap tumindake (SVID) |
SIGTRAP | 5 | Inti | Trace / breakpoint trap |
SIGURG | 16,23,21 | Ign | Urgent condition on socket (4.2 BSD) |
SIGVTALRM | 26,26,28 | Istilah | Jam weker maya (4.2 BSD) |
SIGXCPU | 24,24,30 | Inti | Watesan wektu CPU ngluwihi (4,2 BSD) |
SIGXFSZ | 25,25,31 | Inti | Watesan ukuran berkas ngluwihi (4,2 BSD) |
Nganti lan kalebu Linux 2.2, prilaku standar kanggo SIGSYS , SIGXCPU , SIGXFSZ , lan (ing arsitektur liyane saka SPARC lan MIPS) SIGBUS yaiku kanggo ngakhiri proses kasebut (tanpa mbucal inti). (Ing Unicef liyane, tindakan standar kanggo SIGXCPU lan SIGXFSZ yaiku kanggo mungkasi proses kasebut tanpa mbucal inti.) Linux 2.4 sesuai karo persyaratan POSIX 1003.1-2001 kanggo sinyal kasebut, ngakhiri proses kasebut karo mbucal inti.
Sabanjure macem-macem sinyal liyane.
Sinyal | Nilai | Tindakan | Komentar |
SIGEMT | 7, -, 7 | Istilah | |
SIGSTKFLT | -, 16, - | Istilah | Tumpukan kesalahan ing coprocessor (ora dienggo) |
SIGIO | 23,29,22 | Istilah | I / O saiki bisa (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | Sinonim kanggo SIGCHLD |
SIGPWR | 29,30,19 | Istilah | Gagal daya (Sistem V) |
SIGINFO | 29, -, - | Sinonim kanggo SIGPWR | |
SIGLOST | -, -, - | Istilah | Kunci file ilang |
SIGWINCH | 28,28,20 | Ign | Sinyal resize jendhela (4.3 BSD, Sun) |
SIGUNUSED | -, 31, - | Istilah | Sinyal sing ora dienggo (bakal SIGSYS) |
(Sinyal 29 yaiku SIGINFO / SIGPWR ing ALPHA nanging SIGLOST ing sparc.)
SIGEMT ora ditemtokake ing POSIX 1003.1-2001, nanging ora ditampilake ing Unix liyane, ing ngendi aksi standar kasebut biasane ngilangi proses kasebut kanthi mbuwang inti.
SIGPWR (sing ora kasebut ing POSIX 1003.1-2001) biasane diabaikan kanthi standar ing Unices liyane sing katon.
SIGIO (sing ora kasebut ing POSIX 1003.1-2001) diabaikan minangka standar ing sawetara Unice liyane.
Sinyal wektu nyata
Linux ndhukung sinyal wektu nyata kayata ditetepake ing POSIX.4 ekstensi real-time (lan saiki kalebu ing POSIX 1003.1-2001). Linux ndhukung 32 sinyal wektu nyata, kanthi angka 32 ( SIGRTMIN ) nganti 63 ( SIGRTMAX ). (Program ngirim tansah ngrujuk marang sinyal wektu nyata nggunakake notasi SIGRTMIN + n, amarga sawetara sinyal wektu nyata beda-beda gumantung saka Unices.)
Ora kaya sinyal standar, sinyal wektu nyata ora duwe makna sing wis ditemtokake: kabeh sinyal nyata wektu bisa digunakake kanggo tujuan sing ditetepake aplikasi. (Wigati, Nanging, implementasine LinuxThreads nggunakake telung sinyal wektu nyata.)
Tindakan standar kanggo sinyal wektu nyata sing ora ditindakake yaiku kanggo mungkasi proses panampa.
Sinyal wektu nyata dibedakake miturut:
- Sinode multi-real-time bisa antri. Miturut kontras, yen sawetara instansi saka sinyal standar dikirim nalika sinyal saiki diblokir, mung mung siji antrian.
- Yen sinyal dikirim kanthi nggunakake sigqueue (2), nilai sing ditemoni ( entitas utawa pointer) bisa dikirim mawa sinyal. Yen proses panampa ngesetake pandhuan kanggo sinyal kasebut kanthi nggunakake flag SA_SIGACTION kanggo penyisipan (2), banjur bisa diwenehi data kasebut liwat kolom si_value saka struktur siginfo_t sing dililakaké minangka argumentasi liya menyang pawang. Salajengipun, kolom si_pid lan si_uid saka struktur iki bisa digunakake kanggo njupuk PID lan ID pangguna sing nyata saka proses ngirim sinyal kasebut.
- Sinyal nyata wektu dikirim ing urutan sing dijamin. Sinyal multi-wektu kanthi tipe sing padha dikirim ing urutan sing dikirim. Yen sinyal nyata wektu sing beda dikirim menyang proses, dikirimake diwiwiti kanthi sinyal sing paling angka. (Ya, sinyal nomer sing paling dhuwur duwe prioritas paling dhuwur.)
Yen sinyal sing standar lan nyata-wektu ditundha kanggo proses, POSIX nerangake ora ditemtokake sing bakal dikirim sakdurunge. Linux, kaya akeh implementasi liyane, menehi prioritas kanggo sinyal standar ing kasus iki.
Miturut POSIX, implementasine kudu ngidini sethithik sinyal-sinyal real-time _POSIX_SIGQUEUE_MAX sing bakal dikantri menyang proses. Nanging, tinimbang nempatake watesan saben-proses, Linux nemtokake watesan sistem ing jumlah sinyal wektu nyata sing ditemtokake kanggo kabeh proses.
Watesan iki bisa ditampilake (lan kanthi hak istimewa) diganti liwat file / proc / sys / kernel / rtsig-max . File sing gegandhengan, / proc / sys / kernel / rtsig-max , bisa digunakake kanggo mangerteni manawa sinyal wektu nyata saiki antri.
Manggulangi
POSIX.1
Penting: Gunakake perintah wong ( % man ) kanggo ndeleng carane printah sing digunakake ing komputer sampeyan.