Sonlandırma Sinyalleri
Önceki Standart Sinyaller Sonraki
Sonlandırma Sinyalleri
Bu sinyaller bir sürece şu veya bu şekilde sonlandırılacağını söyler. Farklı amaçlarla yazılımlar onları farklı algılama isteklerine uygun olarak farklı isimlere sahiptirler.
Bu sinyallerin işlenme sebebi yazılımın gerçek sonlandırmayı yapmadan önce bazı hazırlıklar yapmasına imkan vermektir. Örneğin, yazılımı sonlandırmadan önce son duruma ilişkin bilgileri bir yerlere kaydetmek, geçici dosyaları silmek, önceki uçbirim kipine dönmek isteyebilirsiniz. Bunu yapmak için önce sinyali engeller, bu işlemleri yaptıktan sonra asıl sonlandırmayı gerçekleştirmek için sinyali tekrar üretirsiniz. Bu işlem, yazılımınız sanki sinyali elde edemeyen bir yazılım gibi sonlanmasını sağlar. (Bakınız, Süreci Sonlandıran Eylemciler.)
Bu sinyaller için öntanımlı eylem sürecin sonlanmasına sebep olmaktır.
int SIGTERM
makro
SIGTERM, yazılımın sonlanmasına sebep olan en temel sinyallerden biridir. SIGKILL sinyalinin tersine bu sinyal engellenebilir, işleme sokulabilir ya da yoksayılabilir. Normal yöntem yazılımı sonlandırmadan önce isteği kullanıcıya doğrulatmaktır.
kill kabuk komutu öntanımlı olarak (seçeneksiz kullanımda) SIGTERM sinyali üretir.
int SIGINT
makro
SIGINT ("program interrupt" sözcüklerinden türetilmiştir) sinyali, kullanıcı tarafından INTR karakteri (normalde C-c tuşları) tuşlandığında üretilir. C-c sürücü desteği hakkında daha fazla bilgi için Özel Karakterler bölümüne bakınız.
int SIGQUIT
makro
SIGQUIT sinyali QUIT karakteri ile (normalde C-\) üretilmesi dışında SIGINT sinyali gibidir. Süreci sonlandırırken bir yazılım hatası sinyalinin yaptığı gibi son bellek dökümü olarak core dosyası çıktılar. Bunu kullanıcı tarafından "saptanan" bir hata durumu olarak düşünebilirsiniz.
Hata durumndaki bellek dökümleri hakkında daha fazla bilgi için Yazılım Hatalarının Sinyalleri bölümüne bakınız. Uçbirim sürücüsü desteği ile ilgili olarak da Özel Karakterler bölümüne bakınız.
Bazı temizlik işlemleri yapmadan çıkmanın en iyi yolu SIGQUIT sinyalinin elde edilmesidir. Örneğin yazılımınız geçici dosyalar oluşturuyorsa ve diğer sonlandırma isteklerinde bu dosyaları siliyorsa onların silinmemesi için SIGQUIT sinyalini ürettirmek daha iyidir. Böylece bellek dökümü yanında bu geçici dosyalara da bakarak birşeyler daha iyi saptanabilir.
int SIGKILL
makro
SIGKILL sinyali bir uygulamanın anında sonlandırılmasında kullanılır. Bu sinyal engellenemez ve yoksayılamaz.
Bu sinyal genellikle açıkça bir isteğin sonucunda üretilir. Yakalanamadığından C-c veya SIGTERM denedikten sonra sadece bir son çare olarak üretmelisiniz. Eğer süreç başka herhangi bir sonlandırma sinyaline yanıt vermezse, ona bir SIGKILL sinyali göndererek hemen hemen daima sonlanmasını sağlayabilirsiniz.
Ancak, eğer SIGKILL sinyali bir süreci sonlandıramazsa, bu bir işletim sistemi hatasıdır ve mutlaka rapor edilmelidir.
Ayrıca, bir sürecin çalışmasını sürdürmesinin imkansız olduğu durumlarda da süreç bir sinyal eylemci kullanıyor olsa bile sistem SIGKILL sinyali göndererek bu süreci sonlandırabilir.
int SIGHUP
makro
SIGHUP ("hang-up" sözcüklerinden türetilmiştir) sinyali kullanıcının uçbiriminin bağlantısı kesildiğinde durumu bildirmek için üretilir. Bu genellikle bir ağ ya da telefon bağlantısı kesildiğinde olur. Bu durumla ilgili daha fazla bilgi için Denetim Kipleri bölümüne bakınız.
Bu sinyal ayrıca, bir uçbirim üzerinde o oturuma ilişkin işler yürütülen bir sürecin sonlandırılmasında da kullanılır; bu sonlandırma oturumdaki tüm süreçlerin çalıştırıldığı uçbirimle bağlantısının kopmasına yol açar. Daha fazla bilgi için Sonlandırmanın İçyapısı bölümüne bakınız.
Önceki Üst Ana Başlık Sonraki
Yazılım Hatalarının Sinyalleri Başlangıç Alarm Sinyalleri
Bir Linux Kitaplığı Sayfası