Sinyal - Linux / Unix Command

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:

  1. Sinode multi-real-time bisa antri. Miturut kontras, yen sawetara instansi saka sinyal standar dikirim nalika sinyal saiki diblokir, mung mung siji antrian.
  2. 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.
  3. 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.