Ubuntu Manpages

#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.

Geçersiz bir sinyal belirtilmiþ.

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.

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.

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

ÝLGÝLÝ BELGELER

exit(2), exit(3), signal(2), signal(7).

ÇEVÝREN

Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Kasým 2003