GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan antara pkill dan killall?

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


Linux
  1. Apa perbedaan antara strtok_r dan strtok_s di C?

  2. Apa perbedaan antara fsck dan e2fsck?

  3. Apa perbedaan antara adduser dan useradd?

  1. Apa perbedaan antara kill , pkill dan killall?

  2. Apa perbedaan antara `su -` dan` su --login`?

  3. Apa perbedaan antara unlink dan rm?

  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Perbedaan Antara [[ $a ==Z* ]] Dan [ $a ==Z* ]?

  3. Apa perbedaan antara rute dan rute ip?