İ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);
Glibc için özellik sınama makrosu gereksinimi
_POSIX_C_SOURCE (bkz, feature_test_macros(7))

AÇIKLAMA

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)
 

DÖNÜŞ DEĞERİ

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.
 

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 sinyali beklemiyor ( wait(2)) 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.

UYUMLULUK

POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
 

NOTLAR

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.
 

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.1 uyumlu kurallar geçerlidir.
 
 

İLGİLİ BELGELER

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

ÇEVİREN

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

Recommended readings

Pages related to kill you should read also: