Sinyallerin Gönderilmesi
Önceki Sinyallerle İlgili Temel Kavramlar Sonraki
Sinyallerin Gönderilmesi
Bir sinyal üretidiğinde beklemeye alınır. Normalde kısa bir süre için beklemede kaldıktan sonra sinyalleyeceği sürece gönderilir. Eğer sinyal engellenen türde ise sonsuza kadar beklemede kalır--sinyal engellenemeyecek duruma gelininceye kadar. Sinyalin engellenemeyeceği durum oluştuğunda anında gönderilecektir. Bkz. Sinyallerin Engellenmesi.
Bir sinyal gönderildiğinde, hemen ya da uzun bir beklemenin ardından bu sinyal için belirlenmiş eylem alınır. SIGKILL ve SIGSTOP gibi sinyaller için eylem bellidir, ama diğer sinyaller için yazılım bazı seçimler yapabilir: sinyali yoksayabilir, bir sinyalle tetiklenen işlev belirtebilir ya da bu sinyal için geçerli olan öntanımlı eylemi kabul eder. Yazılım seçimini signal veya sigaction (Sinyal Eylemlerinin Belirtilmesi) gibi bir işlev ile belirtir. Kimi zaman sinyalle tetiklenen işlevlerden belge içinde kimi zaman sinyal yakalayıcı kimi zaman da eylemci işlev olarak da söz edeceğiz. Bu işlev çalışırken buna ilişkin sinyal engellenir.
Bir sinyal için belirlenmiş eylem onun yoksayılması ise, böyle bir sinyal üretildiği anda iptal edilir. Bu, sinyal zamanında engellendiğinde de böyle olur. Bu yolla iptal edilmiş bir sinyal asla gönderilmez; yazılımda hemen ardından böyle bir sinyal için farklı bir eylem belirtilse hatta engellenmeyeceği belirtilse bile.
Bir sinyali ne işleme sokacağını ne de yoksayacağını belirtmemişse bu sinyal geldiğinde yazılım, sinyalin öntanımlı eylemini almış olur. Her sinyal türü kendine özgü bir öntanımlı eyleme sahiptir. Bunlar Standart Sinyaller bölümünde açıklanmıştır. Sinyallerin çoğu için öntanımlı eylem sürecin sonlandırılmasıdır. "Zararsız" olaylar için gönderilen sinyaller için öntanımlı eylem ise hiçbir şey yapılmamasıdır.
Bir sinyal bir süreci sonlandırdığında onu çalıştıran süreç sonlanma sebebini wait veya waitpid işlevleri kullanarak onlardan dönen sonlanma durum koduna bakarak saptayabilir. (Bu Süreç Tamamlama bölümünde ayrıntılı olarak açıklanmıştır.) Alınan bilgi, sonlanmaya bir sinyalin mi sebep olduğunu ve ne çeşit sinyal alındığını içerir.
Normalde yazılım hatalarını gösteren sinyaller özel bir niteliğe sahiptir: bu sinyallerden biri süreci sonlandırdığında, sonlanma sırasında sürecin durumunu gösteren core isimli bir döküm dosyası çıktılanır. Bu dosyayı bir hata ayıklayıcı ile inceleyip hatanın sebebini saptayabilirsiniz.
Yazılımınızın oluşturduğu bir "yazılım hatası"nın sonucu olarak bir sinyal alınıp bunun sonucu olarak süreç sonlandığında tıpkı bir hatanın sonucunda olduğu gibi core dosyası çıktılanır.
Önceki Üst Ana Başlık Sonraki
Sinyal Üretimi İle İlgili Kavramlar Başlangıç Standart Sinyaller
Bir Linux Kitaplığı Sayfası