pgrep
dan pkill
utilitas diperkenalkan di Sun's Solaris 7 dan, seperti yang dicatat oleh g33klord, mereka menggunakan pola sebagai argumen yang dicocokkan dengan nama proses yang sedang berjalan. Sedangkan pgrep
hanya mencetak daftar proses pencocokan, pkill
akan mengirimkan sinyal yang ditentukan (atau SIGTERM
secara default) ke proses. Opsi umum dan semantik antara pgrep
dan pkill
berguna saat Anda ingin berhati-hati dan terlebih dahulu meninjau proses pencocokan daftar dengan pgrep
, lalu lanjutkan untuk membunuh mereka dengan pkill
. pgrep
dan pkill
disediakan oleh paket procps, yang juga menyediakan /proc
lainnya utilitas sistem file, seperti ps
, top
, free
, uptime
antara lain.
killall
perintah disediakan oleh paket psmisc, dan berbeda dari pkill
dalam hal itu, secara default, itu sama persis dengan nama argumen (hingga 15 karakter pertama) saat menentukan proses yang akan dikirimi sinyal. -e
, --exact
opsi dapat ditentukan juga membutuhkan pencocokan persis untuk nama yang lebih panjang dari 15 karakter. Ini membuat killall
agak lebih aman untuk digunakan dibandingkan dengan pkill
. Jika argumen yang ditentukan berisi garis miring (/
) karakter, argumen ditafsirkan sebagai nama file dan proses yang menjalankan file tertentu akan dipilih sebagai penerima sinyal. killall
juga mendukung pencocokan ekspresi reguler dari nama proses, melalui -r
, --regexp
opsi.
Ada perbedaan lain juga. killall
perintah misalnya memiliki opsi untuk mencocokkan proses berdasarkan usia (-o
, --older-than
dan -y
, --younger-than
), sedangkan pkill
dapat diberitahu untuk hanya mematikan proses pada terminal tertentu (melalui -t
pilihan). Jelas sekali, kedua perintah tersebut memiliki ceruk khusus.
Perhatikan bahwa killall
perintah pada turunan sistem dari Unix System V (terutama Solaris Sun, AIX IBM, dan HP-UX HP) membunuh semua proses yang dapat dimatikan oleh pengguna tertentu, secara efektif mematikan sistem jika dijalankan oleh root.
Utilitas psmisc Linux telah di-porting ke BSD (dan dalam ekstensi Mac OS X), karenanya killall
di sana mengikuti semantik "bunuh proses dengan nama".
pkill
adalah salah satu yang layak untuk diajarkan kepada generasi mendatang, baik karena filter yang Anda sebutkan maupun karena dipasangkan dengan pgrep
yang sangat dapat digunakan kembali . Mereka membunuh proses dengan cara yang sama, dan tidak ada yang membunuh secara rekursif — meskipun dengan pgrep
, Anda dapat memilih berdasarkan sesi (per-tty, think setsid) atau grup proses (think job control).
satu perbedaannya adalah killall
ambil nama proses yang tepat sebagai argumen sedangkan pkill
dapat menggunakan nama sebagian atau lengkap.
Anda dapat merujuk pertanyaan ini untuk mengetahui secara mendalam tentang pkill