KILL(2) | Sistem Çağrıları | KILL(2) |
kill - bir sürece sinyal gönderir
#include <sys/types.h> #include <signal.h>
kill sistem çağrısı bir sürece veya bir süreç grubuna 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, hiçbir sinyal gönderilmez, ancak varlık ve izin denetimleri yapılır; çağrıcının sinyal göndermesine izin verilen bir süreç kimliğinin veya süreç grubu kimliğinin varlığını sınamak için kullanılabilir.
Bir sürecin sinyal gönderme iznine sahip olması için, ya ayrıcalıklı olması (Linux altında: hedef sürecin kullanıcı isim alanında CAP_KILL yeteneğine sahip olması) ya da gönderen sürecin gerçek veya etkin kullanıcı kimliğinin hedef sürecin gerçek veya etkin kullanıcı kimliğine eşit olması gerekir. SIGCONT durumunda, gönderen ve alan süreçlerin aynı oturuma ait olması yeterlidir. (Geçmişte kurallar farklıydı; bkz. NOTLAR)
Başarı durumunda (en azından bir sinyal gönderilmiştir) sıfır döner. Hata oluşursa -1 döner ve hata errno değişkenine atanır.
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
1 numaralı süreç 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.1, o anki sürecin sinyal gönderebildiği tüm süreçlere (bazı gerçeklenime özgü sistem süreçleri hariç) sig sinyalinin kill(-1,sig) ile gönderilmesini gerektirir. Linux bir sürecin kendi kendine sinyal gönderebilmesini mümkün kılar ancak, Linux üzerinde kill(-1,sig) çağrısı ile süreç kendisine sinyal gönderemez.
POSIX.1’e göre, bir süreç kendisine bir sinyal gönderirse ve gönderen evrede sinyal engellenmemişse ve engellemesi kaldırılmış veya sigwait(3) ile bekleyen başka evre yoksa, kill işlevi dönmeden önce gönderen evreye engellenmemiş en az bir sinyalin teslim edilmiş olması gerekir.
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.1 uyumlu kurallar geçerlidir.
exit(2), exit(3), signal(2), signal(7), feature_test_macros(7).
© 2003, 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır:
Yasaların izin verdiği ölçüde
HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri
yapmak için https://github.com/TLBP/manpages-tr/issues adresinde
"New Issue" düğmesine tıklayıp yeni
bir konu açınız ve isteğinizi belirtiniz.
10 Ekim 2019 | Linux man-pages 5.10 |