- İSİM
- kill — bir sürece sinyal gönderir
- BİLDİRİM
#include <sys/types.h>
#include <signal.h>
int kill (pid_t pid, int sig);
- AÇIKLAMA
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.
- DÖNÜŞ DEĞERİ
Başarı durumunda sıfır döner. Hata oluşursa -1 döner ve hata errno değişkenine atanır.
- HATALAR
- EINVAL
Geçersiz bir sinyal belirtilmiş.
- ESRCH
Süreç kimliği (pid) ya da süreç grubu mevcut değil. Burada bir süreç zombi olabilir, bir süreç sonlandırma almış ancak henüz wait()lenmiş olabilir.
- EPERM
Süreç, alıcı süreçlere sinyal göndermek için yeterli izinlere sahip değil. Bir sürecin sinyal göndermek için yeterli izinlere sahip olması için ya onun root yetkilerine sahip
olması ya da gönderici sürecin gerçek ya da etkin kullanıcı kimliğinin alıcı sürecin gerçek ya da kayıtlı kullanıcı kimliği ile aynı olması gerekir. SIGCONT durumunda, gönderici ve alıcı sürecin aynı oturumun üyesi olması yeterlidir.
- NOTLAR
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.
- LINUX TARİHÇESİ
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.
- UYUMLULUK
SVr4, SVID, POSIX.1, X/OPEN, BSD 4.3, POSIX 1003.1-2001
- İLGİLİ BELGELER
- ÇEVİREN
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Kasım 2003