Manpages

İSİM

signal − kullanılabilir sinyallerin listesi

AÇIKLAMA

Linux hem POSIX güvenilir sinyallerini (bundan sonra "standart sinyaller" denecektir) hem de POSIX gerçek zamanlı sinyallerini destekler.

Standart Sinyaller
Linux aşağıda listelenen standart sinyalleri desteklemektedir. Sinyal numaralarının bazıları "Değer" sütununda görüldüğü gibi mimariye bağımlıdır. (Üç değer verilen yerlerde ilk değer genelde alpha ve sparc içindir, ortadaki değer i386, ppc ve sh için, sonuncusu ise mips içindir. − işareti sinyalin o mimaride bulunmadığını gösterir.)

Tablonun "Eylem" sütunundaki girdiler sinyallerin öntanımlı eylemlerini gösterir:

Son

Öntanımlı eylem sürecin sonlandırılmasıdır.

Yok

Öntanımlı eylem sinyalin yoksayılmasıdır.

Core

Öntanımlı eylem sürecin sonlandırılması ve core dosyası çıktılanmasıdır.

Dur

Öntanımlı eylem sürecin durdurulmasıdır.

Sinyaller ilk defa orginal POSIX.1 standardında açıklanmıştır.

Sinyal Değer Eylem Açıklama
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
SIGHUP
1 Son Denetleyen uçbirimde hangup saptandı  
veya denetleyen sürecin ölümü
SIGINT
2 Son Klavyeden sistem kesmesi
SIGQUIT
3 Core Klavyeden çıkış
SIGILL
4 Core Kuraldışı komut
SIGABRT
6 Core abort(3)'den çık sinyali
SIGFPE
8 Core Kayan nokta hatası
SIGKILL
9 Son Öldür sinyali
SIGSEGV
11 Core Bellek başvurusu geçersiz
SIGPIPE
13 Son Kırık boruhattı: okuyucusu olmayan boruya yazma
SIGALRM
14 Son alarm(2)'den zamanlayıcı sinyali
SIGTERM
15 Son Sonlandırma sinyali
SIGUSR1
30,10,16 Son Kullanıcı tanımlı sinyal 1
SIGUSR2
31,12,17 Son Kullanıcı tanımlı sinyal 2
SIGCHLD
20,17,18 Yok Alt süreç durdu ya da sonlandırıldı
SIGCONT
19,18,25 Durmuşsa devam etsin
SIGSTOP
17,19,23 Dur Süreci durdur
SIGTSTP
18,20,24 Dur tty'de yazmayı durdur
SIGTTIN
21,21,26 Dur artalan süreci için tty girdisi
SIGTTOU
22,22,27 Dur artalan süreci için tty çıktısı

SIGKILL ve SIGSTOP sinyalleri yakalanamaz, engellenemez ve yoksayılamaz.

Aşağıdaki sinyaller POSIX.1 standardında yoktur, SUSv2 ve SUSv3 / POSIX 1003.1−2001 standartlarında açıklanmıştır.

Sinyal Değer Eylem Açıklama
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
SIGBUS
10,7,10 Core Taşıt hatası (hatalı bellek erişimi)
SIGPOLL
Son Kutuplanabilir olay (Sys V). SIGIO ile aynı.
SIGPROF
27,27,29 Son Profilleme zamanlayıcısında zamanaşımı
SIGSYS
12,−,12 Core İşlev argümanı hatalı (SVID)
SIGTRAP
5 Core İz sürme/noktasal durdurma kapanı
SIGURG
16,23,21 Yok Soket üzerinde acil durum (4.2 BSD)
SIGVTALRM
26,26,28 Son Sanal uyarı saati (4.2 BSD)
SIGXCPU
24,24,30 Core İşlemci zaman sınırı aşıldı (4.2 BSD)
SIGXFSZ
25,25,31 Core Dosya boyut sınırı aşıldı (4.2 BSD)

Linux 2.2 dahil ve daha öncesinde SIGSYS, SIGXCPU, SIGXFSZ ve (SPARC ve MIPS dışındaki mimarilerde) SIGBUS sinyali için öntanımlı davranış (core çıktılanmaksızın) süreci sonlandırmaktı. (SIGXCPU ve SIGXFSZ sinyali için bazı Unix'lerde öntanımlı davranış bir core çıktılamaksızın süreci sonlandırmak şeklindedir.) Linux 2.4 bu sinyaller için POSIX 1003.1−2001 gereksinimlerine uygun olarak süreci sonlandırırken bir core çıktılamaktadır.

Diğer sinyaller aşağıdadır:

Sinyal Değer Eylem Açıklama
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
SIGIOT
6 Core IOT kapanı. SIGABRT ile eşanlamlı
SIGEMT
7,−,7 Son
SIGSTKFLT
−,16,− Son ek işlemcide yığıt hatası (kullanılmadı)
SIGIO
23,29,22 Son G/Ç şimdi nümkün (4.2 BSD)
SIGCLD
−,−,18 Yok SIGCHLD ile eşanlamlı
SIGPWR
29,30,19 Son Güç kaybı (System V)
SIGINFO
29,−,− SIGPWR ile eşanlamlı
SIGLOST
−,−,− Son Dosya kilidi kaybı
SIGWINCH
28,28,20 Yok Pencere boyutlandırma sinyali (4.3 BSD, Sun)
SIGUNUSED
−,31,− Son Kullanılmamış sinyal (SIGSYS olacak)

29 numaralı sinyal bir alpha için SIGINFO / SIGPWR iken sparc için SIGLOST'dur.

SIGEMT sinyali POSIX 1003.1−2001 standardında belirtilmemesine rağmen çoğu Unix'de rastlandığı yerde öntanımlı eylem olarak genellikle süreci sonlandırır ve bir core çıktılar.

SIGPWR (POSIX 1003.1−2001 standardında belirtilmemiştir) sinyali de bu Unix'lerde rastlandığı yerde öntanımlı eylem olarak genellikle yoksayılır.

SIGIO (POSIX 1003.1−2001 standardında belirtilmemiştir) sinyali de başka birçok Unix'de öntanımlı olarak yoksayılır.

Gerçek Zamanlı Sinyaller
Linux, POSIX.4'de tanımlı (ve şimdi POSIX 1003.1−2001'de de bulunan) gerçek zamanlı oluşumlar olarak gerçek zamanlı sinyalleri destekler. Linux, 32'den (SIGRTMIN) 63'e (SIGRTMAX) kadar numaralı 32 tane gerçek zamanlı sinyal destekler. (Gerçek zamanlı sinyallerin aralıkları Unix'ler arasında değişiklik gösterdiğinden, uygulamalar gerçek zamanlı sinyalleri daima SIGRTMIN+n sözdizimi ile kullanmalıdır.)

Standart sinyallerin tersine gerçek zamanlı sinyallerin önceden tanımlı anlamları yoktur: gerçek zamanlı sinyallerin tümü uygulama tanımlı amaçlar için kullanılır. (Yine de gerçek zamanlı sinyallerin ilk üçünü LinuxThreads oluşumları kullanır.)

Gerçek zamanlı sinyaller aşağıdaki özelliklere sahiptir:

1.

Gerçek zamanlı sinyallerin çoklu gerçeklemeleri kuyruklanabilir. Tersine olarak, bir standart sinyal bloklanmış olduğu halde çoklu gerçeklemeleri kulanılmışsa sadece bir gerçeklemesi kuyruklanabilir.

2.

Bir sinyal sigqueue(2) kullanılarak gönderilmişse, sinyalle birlikte bir değer (bir tamsayı ya da gösterici) gönderilebilir. Sinyali alan süreç sigaction(2)'la SA_SIGACTION bayrağını kullanarak bu sinyal için bir tutucu oluşturursa, bu süreç veriyi, tutucuya ikinci argüman olarak aktarılan siginfo_t yapısının si_value alanı üzerinden sağlayabilir. Diğer taraftan, bu yapının si_pid ve si_uid alanları sinyali gönderen sürecin gerçek kullanıcı kimliği ile süreç kimliğini (PID) elde etmekte kullanılabilir.

3.

Gerçek zamanlı sinyaller garanti edilmiş bir sırada teslim edilir. Aynı türdeki çoklu gerçek zamanlı sinyaller gönderildikleri sırayla teslim edilir. Bir sürece farklı gerçek zamanlı sinyaller gönderilmişse, en düşük numaralı sinyalden başlayarak teslim edilirler (yani düşük numaralı sinyallerin önceliği daha yüksektir.).

Eğer bir süreç için hem standart hem de gerçek zamanlı sinyaller askıdaysa, POSIX hangisinin önce teslim edileceğini belirlememiştir. Linux, benzer bir çok gerçeklemede olduğu gibi böyle bir durumda standart sinyallere öncelik verir.

POSIX'e uygun olarak, bir oluşum, bir sürece kuyruklanacak gerçek zamanlı sinyallerin sayısının en azından _POSIX_SIGQUEUE_MAX (32) olmasına izin vermelidir. Bunula birlikte, süreç başına bir sınır koymaktansa, Linux tüm süreçler için kuyruklanacak gerçek zamanlı sinyallerin sayısı için sistem çapında bir sınır koyar. Bu sınır /proc/sys/kernel/rtsig−max dosyasında görülebilir ve izinlere bağlı olarak değiştirilebilir. /proc/sys/kernel/rtsig−max ile ilgili bir dosya ile de kaç tane gerçek zamanlı sinyalin kuyruklanmış olduğu görülebilir.

UYUMLULUK

POSIX.1

YAZILIM HATALARI

SIGIO ve SIGLOST aynı değere sahiptir. Sonuncusu çekirdek kaynak kodunda iptal edilmiştir, ancak hala bazı yazılımların derleme süreçleri 29 numaralı sinyalin SIGLOST olduğunu düşünüyor.

İLGİLİ BELGELER

kill(1), kill(2), setitimer(2), sigaction(2), signal(2), sigprocmask(2), mask(2), sigqueue(2).

ÇEVİREN

Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Kasım 2003