kill(2) | Linux Yazılımcılarının Kılavuzu | kill(2) |
kill - bir sürece sinyal gönderir
#include <sys/types.h> #include <signal.h> int kill (pid_t pid, int sig);
kill sistem çağrısı bir sürece veya bir süreç grubuna bir sinyal göndermekte kullanılabilir.
pid pozitif olduğunda, pid sürecine sig sinyali gönderilir.
pid sıfırsa, o anki sürecin süreç grubundaki her sürece sig sinyali gönderilir.
pid -1 ise, 1 numaralı süreç (init) haricindeki her sürece sig sinyali gönderilir (Aşağıda bahsedilen durum dışında).
pid -1'den küçükse, -pid süreç grubundaki her sürece sig sinyali gönderilir.
sig sıfırsa, sinyal gönderilmez, bunun yerine hata denetimi yapılır.
Başarı durumunda sıfır döner. Hata oluşursa -1 döner ve hata errno değişkenine atanır.
1 numaralı görev olan init sürecine bir sinyal yakalayıcıya sahip olmadığı için bir sinyal göndermek mümkün değildir. Bu, kazaen sistemin çökertilmemesini garanti etmek için böyle yapılmıştır.
POSIX 1003.1-2001, o anki sürecin sinyal gönderebildiği tüm süreçlere (bazı oluşum tanımlı sistem süreçleri hariç) sig sinyalinin kill(-1,sig) ile gönderilmesini gerektirir. Linux bir sürecin kendi kendini sinyalleyebilmesini mümkün kılar ancak, Linux üzerinde kill(-1,sig) çağrısı sürecin kendisini sinyallemez.
Farklı çekirdek sürümleriyle, Linux, başka bir sürece sinyal gönderecek yetkisiz bir sürece gereken izinler için farklı kurallar getirmiştir. 1.0 dan 1.2.2'ye kadar sürümlü çekirdeklerde, göndericinin etkin kullanıcı kimliği alıcınınkiyle ya da göndericinin gerçek kullanıcı kimliği alıcınınkiyle eşleşmeliydi. 1.2.3 den 1.3.77'ye kadar sürümlü çekirdeklerde, göndericinin etkin kullanıcı kimliği alıcının gerçek ya da etkin kullanıcı kimliği ile eşleşmeliydi. 1.3.78 sürümünden itibaren çekirdek sürümlerinde POSIX 1003.1-2001 uyumlu kurallar geçerlidir.
SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3, POSIX 1003.1-2001
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Kasım 2003
18 Aralık 2001 | Linux 2.5.0 |