man/text
man · Metin İşleme

$ pkill

Bölüm 1 · Metin İşleme

süreçleri isme göre bulur veya onlara sinyal gönderir

Ö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'si pidfile dosyasında saklanan bir süreçle sınırlandırır.

  • -G gid: Eşleşmeleri, virgülle ayrılmış gid listesindeki 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: -F seçeneği için verilen pidfile dosyası, flock(2) sistem çağrısı ile kilitlenmeli veya pidfile(3) ile oluşturulmalıdır.

  • -P ppid: Eşleşmeleri, virgülle ayrılmış ppid listesindeki üst süreç kimliğine (PPID) sahip süreçlerle sınırlandırır.

  • -U uid: Eşleşmeleri, virgülle ayrılmış uid listesindeki 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ızca pgrep komutuyla kullanılabilir.

  • -a: Süreç atalarını eşleşme listesine dahil eder. Varsayılan olarak, mevcut pgrep veya pkill süreci ve tüm ataları hariç tutulur (-v kullanı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ış pgrp listesindeki süreç grubu kimliğine (PGRP) sahip süreçlerle sınırlandırır. Sıfır değeri, çalışan pgrep veya pkill komutunun 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ı. pgrep için, her eşleşen süreç için süreç kimliğine ek olarak süreç adını da yazdırır. -f ile birlikte kullanılırsa, her eşleşen süreç için süreç kimliğini ve tam argüman listesini yazdırır. pkill iç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: pgrep için, standart çıktıya hiçbir şey yazmaz.

  • -t tty: Eşleşmeleri, virgülle ayrılmış tty listesindeki bir terminalle ilişkili süreçlerle sınırlandırır. Terminal adları ttyxx biçiminde veya kısaltılmış xx biç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ış euid listesindeki 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 -f verilmişse argüman listesinin tam olarak eşleşmesini gerektirir. Varsayılan olarak herhangi bir alt dizeyle eşleşme aranır.

  • -signal: Varsayılan TERM yerine gönderilecek sinyali belirten negatif olmayan bir ondalık sayı veya sembolik sinyal adı. Bu seçenek yalnızca pkill komutuna 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>