Sinyal (IPC) - Signal (IPC)
Sinyaller , çıkmak veya hata işlemek gibi belirli davranışları tetiklemek için çalışan bir programa gönderilen standartlaştırılmış mesajlardır . Bunlar , tipik olarak Unix , Unix benzeri ve diğer POSIX uyumlu işletim sistemlerinde kullanılan, süreçler arası iletişimin (IPC) sınırlı bir biçimidir .
Sinyal, bir olayı bildirmek için bir işleme veya aynı işlem içindeki belirli bir iş parçacığına gönderilen eşzamansız bir bildirimdir . Sinyallerin genel kullanımları, kesme askıya sonlandırmak veya üzeresiniz öldürmek bir süreç. Sinyaller 1970'lerde Bell Labs Unix'te ortaya çıktı ve daha sonra POSIX standardında belirtildi .
Bir sinyal gönderildiğinde, işletim sistemi , sinyali iletmek için hedef sürecin normal yürütme akışını keser . Herhangi bir atomik olmayan talimat sırasında yürütme kesintiye uğrayabilir . İşlem daha önce bir sinyal işleyici kaydettiyse , bu rutin yürütülür. Aksi takdirde, varsayılan sinyal işleyici yürütülür.
Gömülü programlar, sinyaller Algoritmik verimlilikleri açısından dikkate değer olduğundan, süreçler arası iletişim için yararlı sinyaller bulabilir .
Sinyaller benzer kesmeleri , kesmeler aracılık aradaki fark CPU tarafından ele çekirdek sinyalleri (sistem çağrıları aracılığıyla olasılıkla) çekirdek aracılık ettiği ve tek tek tarafından işlenir ise işlemler . Çekirdek (tipik örnekler buna neden işlemi için bir sinyal olarak bir kesme geçebilir SIGSEGV , SIGBUS , SIGILL ve SIGFPE ).
Tarih
Sürüm 1 Unix , kesintileri, çıkışları ve makine tuzaklarını yakalamak için ayrı sistem çağrılarına sahipti . Sürüm 4 , tüm tuzakları tek bir çağrıda, sinyalde birleştirdi ve her numaralandırılmış tuzak, Sürüm 7'de sembolik bir ad aldı . kill , Sürüm 2'de göründü ve Sürüm 5'te keyfi sinyaller gönderebiliyordu. Bell Laboratuarlarından Plan 9, sinyalleri kısa, rastgele diziler göndermeye izin veren notlarla değiştirdi .
sinyal gönderme
Öldürmek (2) izinleri izin verirse sistem çağrısı, belirli bir sürece belirtilen sinyal gönderir. Benzer şekilde, kill(1) komutu, bir kullanıcının işlemlere sinyal göndermesine izin verir. Kaldırma (3) kütüphane işlevi geçerli işlem için belirtilen sinyal gönderir.
Sıfıra bölme veya segmentasyon ihlali gibi istisnalar sinyaller üretecektir (burada, sırasıyla SIGFPE "kayan nokta istisnası" ve SIGSEGV "segmentasyon ihlali", her ikisi de varsayılan olarak bir çekirdek dökümüne ve bir program çıkışına neden olur ).
Çekirdek, olayların süreçlerini bildirmek için sinyaller üretebilir. Örneğin, bir süreç okuyucu tarafından kapatılmış bir boruya yazdığında SIGPIPE oluşturulacaktır; varsayılan olarak bu, işlemin sonlandırılmasına neden olur ve bu, kabuk ardışık düzenleri oluştururken kullanışlıdır .
Çalışan bir işlemin kontrol terminalinde belirli tuş kombinasyonlarının yazılması, sistemin ona belirli sinyaller göndermesine neden olur:
- Ctrl-C (eski Unix'lerde, DEL) bir INT sinyali gönderir ("interrupt", SIGINT ); varsayılan olarak, bu işlemin sonlandırılmasına neden olur.
- Ctrl-Z bir TSTP sinyali gönderir ("terminal durdurma", SIGTSTP ); varsayılan olarak bu, işlemin yürütmeyi askıya almasına neden olur.
- Ctrl-\ bir ÇIK sinyali gönderir ( SIGQUIT ); varsayılan olarak bu, işlemin sonlandırılmasına ve çekirdeğin atılmasına neden olur.
- Ctrl-T (tüm UNIX'lerde desteklenmez) bir INFO sinyali gönderir ( SIGINFO ); varsayılan olarak ve komut tarafından destekleniyorsa, bu, işletim sisteminin çalışan komut hakkında bilgi göstermesine neden olur.
Modern işletim sistemleriyle bu varsayılan tuş kombinasyonları stty komutuyla değiştirilebilir .
İşleme sinyalleri
Sinyal işleyiciler, sinyal(2) veya sigaction(2) sistem çağrısı ile kurulabilir . Belirli bir sinyal için bir sinyal işleyici kurulmamışsa, varsayılan işleyici kullanılır. Aksi takdirde sinyal yakalanır ve sinyal işleyici çağrılır. İşlem ayrıca, bir işleyici oluşturmadan iki varsayılan davranış belirleyebilir: sinyali (SIG_IGN) yok sayın ve varsayılan sinyal işleyicisini (SIG_DFL) kullanın. Yakalanamayan ve işlenemeyen iki sinyal vardır: SIGKILL ve SIGSTOP .
Riskler
Sinyal işleme, yarış koşullarına karşı savunmasızdır . Sinyaller asenkron olduğundan, sinyal işleme rutininin yürütülmesi sırasında sürece başka bir sinyal (aynı türden olsa bile) iletilebilir.
Sigprocmask (2) çağrı bloke eder ve sinyalleri Engel kaldırma dağıtım için kullanılabilir. Engellenen sinyaller, engellenene kadar sürece iletilmez. Göz ardı edilemeyen sinyaller (SIGKILL ve SIGSTOP) engellenemez.
Sinyaller, sürmekte olan bir sistem çağrısının kesintiye uğramasına neden olabilir ve şeffaf olmayan bir yeniden başlatmayı yönetmeyi uygulamaya bırakır .
Sinyal işleyiciler, örneğin hata değişikliği, sinyal maskesi değişikliği, sinyal düzeni değişikliği ve diğer global süreç özniteliği değişiklikleri gibi istenmeyen yan etkilere neden olmayacak şekilde yazılmalıdır . Olmayan kullanımı evresel fonksiyonları, örneğin malloc veya printf , iç sinyal işleyici da güvensiz. Özellikle, POSIX belirtimi ve Linux kılavuz sayfası sinyali (7) , bir sinyal işlevinden doğrudan veya dolaylı olarak çağrılan tüm sistem işlevlerinin eşzamansız sinyal güvenli olmasını gerektirir . Sinyal-güvenliği (7) man sayfa, zaman uyumsuz sinyal güvenli sistem fonksiyonlarının (pratikte bir listesini verir sistem çağrıları aksi takdirde bir olduğunu) tanımsız davranış . volatile sig_atomic_t
Bir sinyal işleyicide bazı değişkenlerin basitçe ayarlanması ve başka bir yerde test edilmesi önerilir .
Sinyal işleyiciler bunun yerine sinyali bir kuyruğa koyabilir ve hemen geri dönebilir. Ana iş parçacığı daha sonra bir olay döngüsünde olduğu gibi kuyruktan sinyaller alınana kadar "kesintisiz" devam edecektir . Buradaki "kesintisiz", bloke eden işlemlerin zamanından önce dönebileceği ve yukarıda belirtildiği gibi devam ettirilmesi gerektiği anlamına gelir . Sinyaller , eşzamansızlık sorununu yeniden ortaya çıkardığından, işçi havuzları tarafından değil, ana iş parçacığındaki kuyruktan işlenmelidir . Bununla birlikte, yalnızca sig_atomic_t ile bir kuyruğun güvenli bir eşzamansız sinyalle yönetilmesi mümkün değildir , çünkü bu tür değişkenlere yapılan tek okuma ve yazmaların, gerekli olduğu gibi artışlar veya (getir-ve)-azalmaları değil, atomik olması garanti edilir. sıra. Bu nedenle, etkin bir şekilde, işleyici başına yalnızca bir sinyal, işlenene kadar sig_atomic_t ile güvenli bir şekilde kuyruğa alınabilir .
Donanım istisnalarıyla ilişki
Bir işlemin yürütülmesi, örneğin işlem sıfıra bölmeye çalışırsa veya bir sayfa hatasına neden olursa, bir donanım istisnasının oluşturulmasına neden olabilir .
In Unix benzeri işletim sistemleri, bu etkinlik otomatik işlemci değiştirir bağlamı bir yürütme başlamak için çekirdek istisna işleyicisi . Sayfa hatası gibi bazı istisnalar olması durumunda , çekirdek olayın kendisini tam olarak işlemek ve işlemin yürütülmesine devam etmek için yeterli bilgiye sahiptir.
Bununla birlikte, diğer istisnalar, çekirdek akıllıca işleyemez ve bunun yerine istisna işleme işlemini hata oluşturma işlemine ertelemelidir. Bu erteleme, sinyal mekanizması aracılığıyla gerçekleştirilir, burada çekirdek, işleme mevcut istisnaya karşılık gelen bir sinyal gönderir. Örneğin, bir işlem bir x86 CPU'da tamsayıyı sıfıra bölmeye çalışırsa , bir bölme hatası istisnası oluşturulur ve çekirdeğin sürece SIGFPE sinyali göndermesine neden olur .
Benzer şekilde, işlem sanal adres alanı dışında bir bellek adresine erişmeye çalışırsa, çekirdek bu ihlali bir SIGSEGV sinyali aracılığıyla sürece bildirir. İstisna türleri mimariler arasında farklılık gösterdiğinden, sinyal adları ve istisnalar arasındaki tam eşleme açıkça CPU'ya bağlıdır.
POSIX sinyalleri
Aşağıdaki liste, Single Unix Spesifikasyonunda belirtilen sinyalleri belgelemektedir . Tüm sinyaller, <signal.h>
başlık dosyasında makro sabitleri olarak tanımlanır . Makro sabitinin adı, bir "SIG" ön ekinden ve ardından sinyal için anımsatıcı bir addan oluşur .
- SIGABRT veSİGİOT
- SIGABRT ve SIGIOT sinyali, bir işleme onu iptal etmesini yani sonlandırmasını söylemek için gönderilir . Sinyal genellikle C Standard Library
abort()
işlevini çağırdığında sürecin kendisi tarafından başlatılır , ancak diğer herhangi bir sinyal gibi sürece dışarıdan gönderilebilir. - SİGALRM ,SIGVTALRM veSIGPROF
- SIGALRM, SIGVTALRM ve SIGPROF sinyali, bir önceki alarm ayar fonksiyonuna (örneğin
setitimer
) yapılan bir çağrıda belirtilen zaman sınırı geçtiğinde bir işleme gönderilir . SIGALRM, gerçek veya saat zamanı geçtiğinde gönderilir. İşlem tarafından kullanılan CPU zamanı geçtiğinde SIGVTALRM gönderilir. SIGPROF, süreç tarafından ve sistem tarafından süreç adına kullanılan CPU zamanı geçtiğinde gönderilir. - SIGBUS
- SIGBUS sinyali bir neden olan bir süreç gönderilir otobüs hatası . Sinyalin gönderilmesine neden olan koşullar, örneğin hatalı bellek erişim hizalaması veya mevcut olmayan fiziksel adrestir.
- SIGCHLD
- SIGCHLD sinyali bir işleme gönderilir alt süreç sonlandırır , kesintiye veya kesintiye sonra devam edilir. Sinyalin yaygın bir kullanımı, işletim sistemine,
wait
sistem çağrısına açık bir çağrı olmadan sonlandırıldıktan sonra bir alt süreç tarafından kullanılan kaynakları temizlemesi talimatını vermektir. - SIGCONT
- SIGCONT sinyali işletim sistemini talimatını devam (yeniden) daha önce SIGSTOP veya SIGTSTP sinyali ile durdurulmuş bir işlem. Bu sinyalin önemli kullanım alanlarından biri olduğu iş denetimi de Unix kabuk .
- SIGFPE
- SIGFPE sinyali, kayan nokta veya tamsayı aritmetik donanımında istisnai (ancak hatalı olması gerekmeyen) bir durum algılandığında bir işleme gönderilir. Bu, sıfıra bölme , kayan noktalı taşma veya taşma, tamsayı taşması, geçersiz bir işlem veya tam olmayan bir hesaplama içerebilir . Davranış, donanıma bağlı olarak farklılık gösterebilir.
- SIGHUP
- SIGHUP onun kontrol terminali kapatıldığında sinyali işlemine gönderilir. Başlangıçta bir seri hat düşüşü (bir kapatma ) sürecini bildirmek için tasarlanmıştır . Modern sistemlerde, bu sinyal genellikle kontrol eden sözde veya sanal terminalin kapatıldığı anlamına gelir . Çoğu arka plan programı (kontrol terminali olmayan) bu sinyalin alındığını yapılandırma dosyalarını yeniden yükleme ve çıkmak yerine günlük dosyalarını temizleme/yeniden açma talebi olarak yorumlar. nohup , bir komutun sinyali yok saymasını sağlayan bir komuttur.
- SİGİL
- SIGILL sinyali, yasadışı , hatalı biçimlendirilmiş, bilinmeyen veya ayrıcalıklı bir talimatı yürütmeye çalıştığında bir işleme gönderilir .
- SIGINT
- SIGINT sinyali, bir kullanıcı işlemi kesmek istediğinde, kontrol terminali tarafından bir işleme gönderilir . Bu genellikle Ctrl+C tuşuna basılarak başlatılır , ancak bazı sistemlerde " sil " karakteri veya " break " tuşu kullanılabilir.
- SIGKILL
- SIGKILL sinyali, işlemin hemen sonlandırılmasına ( kill ) neden olmak için bir işleme gönderilir . SIGTERM ve SIGINT'in aksine bu sinyal yakalanamaz veya yok sayılamaz ve alıcı işlemi bu sinyali aldıktan sonra herhangi bir temizleme işlemi gerçekleştiremez. Aşağıdaki istisnalar geçerlidir:
- Zombi süreçleri , zaten ölü oldukları ve ana süreçlerinin onları biçmesini bekledikleri için öldürülemez.
- Engellenen durumda olan işlemler tekrar uyanana kadar ölmeyecektir.
- İnit süreci özeldir: O koluna istemediği sinyalleri almaz ve böylece SIGKILL göz ardı edebilirsiniz. İnit iken bu kuraldan bir istisna oluşturur ptraced Linux üzerinde.
- Bir sürekli ve uyku süreci sonlandırmak (ve kaynaklarını serbest) sigkill gönderilen dahi olmayabilir. Bu, geçici bir yazılım sorununu çözmek için bir UNIX sisteminin yeniden başlatılmasının gerekebileceği birkaç durumdan biridir.
- SIGKILL, SIGTERM'e yanıt olarak gönüllü olarak çıkmıyorsa , çoğu sistem kapatma prosedüründe süreçleri sonlandırırken son çare olarak kullanılır . Bilgisayar kapatma prosedürünü hızlandırmak için, Snow Leopard olarak da bilinen Mac OS X 10.6, SIGKILL'i kendilerini "temiz" olarak işaretleyen uygulamalara göndererek, muhtemelen hiçbir kötü etkisi olmadan daha hızlı kapanma süreleri sağlar. Komut
killall -9
, örneğin Linux'ta yürütüldüğünde benzer, ancak tehlikeli bir etkiye sahiptir; programların kaydedilmemiş verileri kaydetmesine izin vermez. Başka seçenekleri vardır ve hiçbiri olmadığında daha güvenli SIGTERM sinyalini kullanır. - SIGPIPE
- SIGPIPE sinyali, diğer uca bağlı bir işlem olmadan bir boruya yazmaya çalıştığında bir işleme gönderilir .
- SİGPOLL
- SIGPOLL sinyali, açıkça izlenen bir dosya tanımlayıcıda bir olay meydana geldiğinde gönderilir. Çekirdek , arayan yerine tanımlayıcıyı yoklayacağından , bunu etkin bir şekilde kullanmak, zaman uyumsuz G/Ç istekleri yapılmasına yol açar . Aktif yoklamaya bir alternatif sağlar .
- SIGRTMIN içinSIGRTMAX
- SIGRTMIN - SIGRTMAX sinyalleri, kullanıcı tanımlı amaçlar için kullanılmak üzere tasarlanmıştır. Bunlar gerçek zamanlı sinyallerdir.
- SIGQUIT
- SIGQUIT sinyali, kullanıcı işlemin sonlandırılmasını ve bir çekirdek dökümü gerçekleştirmesini istediğinde, kontrol terminali tarafından bir işleme gönderilir .
- SIGSEGV
- SIGSEGV geçersiz bir sanal bellek başvurusu veya yaptığında sinyali işlemine gönderilir segmentasyon hatası bir gerçekleştirdiğinde, yani seg lanma v iolation .
- SIGSTOP
- SIGSTOP sinyali işletim sistemini talimatını durdurmak daha sonra yeniden başlatılması için bir süreç.
- SIGSYS
- SIGSYS sinyali, bir sistem çağrısına hatalı bir argüman ilettiğinde bir işleme gönderilir . Uygulamada, bu tür bir sinyalle nadiren karşılaşılır, çünkü uygulamalar onları aramak için kütüphanelere (örneğin libc ) güvenir . SIGSYS, onları kısıtlamak için yapılandırılmış Linux Seccomp güvenlik kurallarını ihlal eden uygulamalar tarafından alınabilir . SIGSYS ayrıca yabancı sistem çağrılarını taklit etmek için de kullanılabilir, örneğin Linux'ta Windows sistem çağrılarını taklit etmek.
- SIGTERM
- SIGTERM sinyali, sonlandırılmasını istemek için bir işleme gönderilir . SIGKILL sinyalinden farklı olarak, süreç tarafından yakalanabilir ve yorumlanabilir veya yok sayılabilir. Bu, işlemin kaynakları serbest bırakma ve uygunsa durumu kaydetme güzel sonlandırmasını gerçekleştirmesine izin verir. SIGINT, SIGTERM ile neredeyse aynıdır.
- SIGTSTP
- SIGTSTP sinyali, kontrol ederek işlemine gönderilir terminali için istemek için durdurma ( t erminal st o p ). Genellikle kullanıcının Ctrl+Z tuşuna basması ile başlatılır . SIGSTOP'tan farklı olarak proses, sinyal için bir sinyal işleyicisi kaydedebilir veya yok sayabilir.
- SIGTTIN veSIGTTOU
- SIGTTIN ve SIGTTOU okunmaya çalıştığında sinyalleri bir işlem gönderilir olarak veya yazma üzerinden sırasıyla bir uçbirim ise arka . Tipik olarak, bu sinyaller yalnızca iş kontrolü altındaki süreçler tarafından alınır ; cinlerin kontrol terminalleri yoktur ve bu nedenle bu sinyalleri asla almamalıdırlar.
- SIGTRAP
- SIGTRAP sinyali, bir istisna (veya tuzak ) oluştuğunda bir işleme gönderilir : bir hata ayıklayıcının bilgilendirilmeyi talep ettiği bir koşul – örneğin, belirli bir işlev yürütüldüğünde veya belirli bir değişken değeri değiştirdiğinde.
- SIGURG
- SIGURG bir zaman sinyal bir süreç gönderilir soket vardır acil veya dışında bant veri okumak için kullanılabilir.
- SIGUSR1 veSIGUSR2
- SIGUSR1 ve SIGUSR2 sinyalleri, kullanıcı tanımlı koşulları belirtmek için bir işleme gönderilir .
- SIGXCPU
- SIGXCPU sinyali, önceden belirlenmiş belirli bir kullanıcı tarafından ayarlanabilen değeri aşan bir süre boyunca CPU'yu kullandığında bir işleme gönderilir . Bir SIGXCPU sinyalinin gelmesi, alma işlemine, SIGKILL sinyali kullanılarak işletim sistemi tarafından sonlandırılmadan önce, herhangi bir ara sonucu hızlı bir şekilde kaydetme ve zarif bir şekilde çıkma şansı verir.
- SIGXFSZ
- Bir büyüyünce SIGXFSZ sinyali süreç gönderilir dosyayı aşan izin verilen maksimum boyutu .
- SIGWINCH
- SIGWINCH sinyali, kontrol terminali boyutunu (a değiştiren bir işlemine gönderilir kazanmak Dow ch ange).
Varsayılan aksiyon
Bir süreç, gelen POSIX sinyallerinin nasıl işleneceğini tanımlayabilir . Bir işlem bir sinyal için bir davranış tanımlamıyorsa, o sinyal için varsayılan işleyici kullanılıyor demektir. Aşağıdaki tablo, FreeBSD , OpenBSD ve Linux gibi POSIX uyumlu UNIX sistemleri için bazı varsayılan eylemleri listeler .
sinyal | Taşınabilir numara |
Varsayılan aksiyon | Açıklama |
---|---|---|---|
SIGABRT | 6 | Sonlandır (çekirdek dökümü) | İşlem durdurma sinyali |
SİGALRM | 14 | sonlandırmak | Alarm saati |
SIGBUS | Yok | Sonlandır (çekirdek dökümü) | Bir bellek nesnesinin tanımsız bir bölümüne erişim |
SIGCHLD | Yok | Görmezden gelmek | Alt süreç sonlandırıldı, durduruldu veya devam edildi |
SIGCONT | Yok | Devam et | Durdurulduysa, yürütmeye devam edin |
SIGFPE | 8 | Sonlandır (çekirdek dökümü) | Hatalı aritmetik işlem |
SIGHUP | 1 | sonlandırmak | Telefonu kapatmak |
SİGİL | 4 | Sonlandır (çekirdek dökümü) | yasa dışı talimat |
SIGINT | 2 | sonlandırmak | Terminal kesme sinyali |
SIGKILL | 9 | sonlandırmak | Öldür (yakalanamaz veya göz ardı edilemez) |
SIGPIPE | 13 | sonlandırmak | Kimsenin okumayacağı bir boruya yaz |
SİGPOLL | Yok | sonlandırmak | Yoklanabilir etkinlik |
SIGPROF | Yok | sonlandırmak | Profil oluşturma zamanlayıcısının süresi doldu |
SIGQUIT | 3 | Sonlandır (çekirdek dökümü) | Terminal çıkış sinyali |
SIGSEGV | 11 | Sonlandır (çekirdek dökümü) | Geçersiz bellek referansı |
SIGSTOP | Yok | Durmak | Yürütmeyi durdur (yakalanamaz veya göz ardı edilemez) |
SIGSYS | Yok | Sonlandır (çekirdek dökümü) | Kötü sistem çağrısı |
SIGTERM | 15 | sonlandırmak | sonlandırma sinyali |
SIGTRAP | 5 | Sonlandır (çekirdek dökümü) | İzleme/kesme noktası tuzağı |
SIGTSTP | Yok | Durmak | Terminal durdurma sinyali |
SIGTTIN | Yok | Durmak | Arka plan işlemi okumaya çalışıyor |
SIGTTOU | Yok | Durmak | Yazmaya çalışan arka plan işlemi |
SIGUSR1 | Yok | sonlandırmak | Kullanıcı tanımlı sinyal 1 |
SIGUSR2 | Yok | sonlandırmak | Kullanıcı tanımlı sinyal 2 |
SIGURG | Yok | Görmezden gelmek | Bir sokette bant dışı veriler mevcuttur |
SIGVTALRM | Yok | sonlandırmak | Sanal zamanlayıcının süresi doldu |
SIGXCPU | Yok | Sonlandır (çekirdek dökümü) | CPU zaman sınırı aşıldı |
SIGXFSZ | Yok | Sonlandır (çekirdek dökümü) | Dosya boyutu sınırı aşıldı |
SIGWINCH | Yok | Görmezden gelmek | Terminal penceresi boyutu değişti |
- Taşınabilir numara:
- Çoğu sinyal için karşılık gelen sinyal numarası uygulama tanımlıdır. Bu sütun, POSIX standardında belirtilen sayıları listeler.
- Eylemler açıklandı:
- Sonlandır – Sürecin anormal şekilde sonlandırılması. İşlem, wait() ve waitpid() için kullanılabilir hale getirilen durumun belirtilen sinyal tarafından anormal sonlandırmayı göstermesi dışında, _exit()'in tüm sonuçlarıyla sonlandırılır.
- Sonlandır (çekirdek dökümü) – Sürecin anormal şekilde sonlandırılması. Ek olarak, bir çekirdek dosyanın oluşturulması gibi uygulama tanımlı anormal sonlandırma eylemleri meydana gelebilir.
- Yoksay – Sinyali yoksay.
- Durdur – İşlemi durdurun (sonlandırmayın).
- Devam Et – Durdurulduysa işleme devam edin; aksi halde sinyali görmezden gelin.
çeşitli sinyaller
Aşağıdaki sinyaller POSIX spesifikasyonunda belirtilmemiştir . Bununla birlikte, bazen çeşitli sistemlerde kullanılırlar.
- SIGEMT
- SIGEMT sinyali, bir öykünücü tuzağı oluştuğunda bir işleme gönderilir .
- SIGINFO
- SIGINFO sinyali, kontrol terminalinden bir durum ( bilgi ) talebi alındığında bir işleme gönderilir .
- SIGPWR
- SIGPWR sinyali, sistem bir güç kesintisi yaşadığında bir işleme gönderilir .
- SIGLOST
- SIGLOST sinyali, bir dosya kilidi kaybolduğunda bir işleme gönderilir .
- SIGSTKFLT
- İşlemci bir yaşadığında SIGSTKFLT sinyali işlemine gönderilir st ac k f au lt (yani yığın boşken patlama veya dolu olduğunda itme). Bir x87 yardımcı işlemci yığın hatasının bunun yerine SIGFPE üreteceği Linux tarafından tanımlanır, ancak Linux'ta kullanılmaz .
- İMZALANMIŞ
- SIGUNUSED sinyali, kullanılmayan bir sistem çağrı numarası ile bir sistem çağrısı yapıldığında bir işleme gönderilir . Çoğu mimaride SIGSYS ile eş anlamlıdır.
- SIGCLD
- SIGCLD sinyali, SIGCHLD ile eş anlamlıdır.
Ayrıca bakınız
Referanslar
- Stevens, W. Richard (1992). UNIX® Ortamında Gelişmiş Programlama . Okuma, Massachusetts: Addison Wesley. ISBN'si 0-201-56317-7.
- "Açık Grup Temel Spesifikasyonları Sayı 7, 2013 Sürümü" . Açık Grup . 19 Haziran 2015'te erişildi .
Dış bağlantılar
- Unix Sinyal Tablosu, Ali Alanjawi, Pittsburgh Üniversitesi
- Man7.org Sinyal Adam Sayfası
- Programlama Giriş için Unix Sinyaller Programlama Tanıtım için Unix Sinyaller de Wayback Machine (2013 26 Eylül arşivlenmiş)
- Unix Sinyal Programlamasına Başka Bir Giriş (blog yazısı, 2009)
- Barış Şimşek'ten UNIX ve Güvenilir POSIX Sinyalleri
- Henning Brauer'den Sinyal İşleyiciler