table of contents
kill(2) | Linux Yazılımcılarının Kılavuzu | kill(2) |
İSİM¶
kill - bir sürece sinyal gönderir
KULLANIM¶
#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
18 Aralık 2001 | Linux 2.5.0 |