Özet
pgrep [-Lafilnoqvx] [-F pidfile] [-G gid] [-P ppid] [-U uid] [-d delim] [-g pgrp] [-t tty] [-u euid] pattern ...
pkill [-signal] [-ILafilnovx] [-F pidfile] [-G gid] [-P ppid] [-U uid] [-g pgrp] [-t tty] [-u euid] pattern ...
Açıklama
pgrep komutu, çalışan sistemdeki süreç tablosunu arar ve komut satırında verilen kriterlerle eşleşen tüm süreçlerin süreç kimliklerini (PID) yazdırır.
pkill komutu, çalışan sistemdeki süreç tablosunu arar ve komut satırında verilen kriterlerle eşleşen tüm süreçlere sinyal gönderir.
Seçenekler
-F pidfile: Eşleşmeleri, PID'sipidfiledosyasında saklanan bir süreçle sınırlandırır.-G gid: Eşleşmeleri, virgülle ayrılmışgidlistesindeki gerçek grup kimliğine (GID) sahip süreçlerle sınırlandırır.-I: Her bir sürece sinyal göndermeye çalışmadan önce onay ister.-L:-Fseçeneği için verilenpidfiledosyası,flock(2)sistem çağrısı ile kilitlenmeli veyapidfile(3)ile oluşturulmalıdır.-P ppid: Eşleşmeleri, virgülle ayrılmışppidlistesindeki üst süreç kimliğine (PPID) sahip süreçlerle sınırlandırır.-U uid: Eşleşmeleri, virgülle ayrılmışuidlistesindeki gerçek kullanıcı kimliğine (UID) sahip süreçlerle sınırlandırır.-d delim: Her süreç kimliği arasında yazdırılacak bir sınırlayıcı belirtir. Varsayılan değer yeni satırdır. Bu seçenek yalnızcapgrepkomutuyla kullanılabilir.-a: Süreç atalarını eşleşme listesine dahil eder. Varsayılan olarak, mevcutpgrepveyapkillsüreci ve tüm ataları hariç tutulur (-vkullanılmadığı sürece).-f: Tam argüman listelerine göre eşleştirme yapar. Varsayılan olarak süreç adlarına göre eşleştirme yapılır.-g pgrp: Eşleşmeleri, virgülle ayrılmışpgrplistesindeki süreç grubu kimliğine (PGRP) sahip süreçlerle sınırlandırır. Sıfır değeri, çalışanpgrepveyapkillkomutunun süreç grubu kimliği anlamına gelir.-i: Hem süreç tablosunda hem de sağlanan örüntüde (pattern) büyük/küçük harf ayrımını yoksayar.-l: Uzun çıktı.pgrepiçin, her eşleşen süreç için süreç kimliğine ek olarak süreç adını da yazdırır.-file birlikte kullanılırsa, her eşleşen süreç için süreç kimliğini ve tam argüman listesini yazdırır.pkilliçin, sonlandırılan her süreç için kullanılan sonlandırma (kill) komutunu görüntüler.-n: Eşleşen süreçlerden yalnızca en yenisini (en son başlatılanı) seçer.-o: Eşleşen süreçlerden yalnızca en eskisini (en önce başlatılanı) seçer.-q:pgrepiçin, standart çıktıya hiçbir şey yazmaz.-t tty: Eşleşmeleri, virgülle ayrılmışttylistesindeki bir terminalle ilişkili süreçlerle sınırlandırır. Terminal adlarıttyxxbiçiminde veya kısaltılmışxxbiçiminde olabilir. Tek bir tire (-), bir terminalle ilişkili olmayan süreçlerle eşleşir.-u euid: Eşleşmeleri, virgülle ayrılmışeuidlistesindeki etkin kullanıcı kimliğine (EUID) sahip süreçlerle sınırlandırır.-v: Eşleştirme mantığını tersine çevirir; verilen kriterlerle eşleşmeyen süreçleri görüntüler.-x: Süreç adının veya-fverilmişse argüman listesinin tam olarak eşleşmesini gerektirir. Varsayılan olarak herhangi bir alt dizeyle eşleşme aranır.-signal: VarsayılanTERMyerine gönderilecek sinyali belirten negatif olmayan bir ondalık sayı veya sembolik sinyal adı. Bu seçenek yalnızcapkillkomutuna ilk argüman olarak verildiğinde geçerlidir.
Herhangi bir örüntü (pattern) işleneni belirtilirse, bunlar her sürecin komut adını veya tam argüman listesini eşleştirmek için genişletilmiş düzenli ifadeler (extended regular expressions) olarak kullanılır.
Çalışan bir pgrep veya pkill sürecinin kendisini asla potansiyel bir eşleşme olarak değerlendirmeyeceğini unutmayın.
Çıkış Durumu
pgrep ve pkill araçları çıkışta aşağıdaki değerlerden birini döndürür:
0: Bir veya daha fazla süreç eşleşti.1: Hiçbir süreç eşleşmedi.2: Komut satırında geçersiz seçenekler belirtildi.3: Dahili bir hata oluştu.
Örnekler
/tmp/.X0-lock pid dosyasını tutan sürecin pid'sini gösterir:
pgrep -F /tmp/.X0-lock
1211
firefox süreçleri için uzun çıktı gösterir:
pgrep -l firefox
1312 firefox
1309 firefox
1288 firefox
1280 firefox
1279 firefox
1278 firefox
1277 firefox
1264 firefox
Yukarıdakinin aynısı ancak yalnızca en son sürecin pid'sini gösterir:
pgrep -n firefox
1312
vim süreçlerini arar. Tam argüman listesine göre eşleştirme yapar:
pgrep -f vim
44968
30790
Yukarıdakinin aynısı ancak list kelimesiyle eşleştirme yapar ve tam argüman listesini gösterir:
pgrep -f -l list
30790 vim list.txt
Birebir eşleşen süreçlere SIGSTOP sinyali gönderir:
pkill -SIGSTOP -f -x "vim list.txt"
-f bayrağı olmadan 19 karakterden uzun isimler sessizce başarısız olur:
vim this_is_a_very_long_file_name &
[1] 36689
[1]+ Stopped vim this_is_a_very_long_file_name
pgrep "vim this"
-f bayrağını kullanarak yukarıdakinin aynısı:
pgrep -f "vim this"
36689
Ayrıca Bakınız
kill(1), killall(1), ps(1), flock(2), kill(2), sigaction(2), pidfile(3), re_format(7)
Tarihçe
pkill ve pgrep araçları ilk olarak NetBSD 1.6'da ortaya çıkmıştır. Sun Solaris 7'de yer alan aynı isimli araçlar örnek alınarak modellenmişlerdir. FreeBSD 5.3'te ilk kez boy göstermişlerdir.
Yazarlar
Andrew Doran <ad@NetBSD.org>