GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan Kill, Pkill, dan Killall?

Saya akrab dengan kill command , dan sebagian besar waktu kita hanya menggunakan kill -9 untuk mematikan proses secara paksa, ada banyak sinyal lain yang dapat digunakan dengan kill . Tapi saya ingin tahu apa kasus penggunaan pkill dan killall , jika sudah ada perintah kill.

Lakukan pkill dan killall gunakan kill perintah dalam pelaksanaannya? Maksud saya mereka hanyalah pembungkus kill atau mereka memiliki implementasinya sendiri?

Saya juga ingin tahu bagaimana pgrep perintah mendapatkan id proses dari nama proses.

Apakah semua perintah ini menggunakan panggilan sistem dasar yang sama? Apakah ada perbedaan dari sudut pandang kinerja, mana yang lebih cepat?

Jawaban yang Diterima:

kill perintah adalah pembungkus yang sangat sederhana untuk kill panggilan sistem , yang hanya mengetahui tentang ID proses (PID). pkill dan killall juga merupakan pembungkus kill panggilan sistem , (sebenarnya, ke perpustakaan libc yang secara langsung memanggil panggilan sistem), tetapi dapat menentukan PID untuk Anda, berdasarkan hal-hal seperti, nama proses, pemilik proses, id sesi, dll.

Bagaimana pkill dan killall pekerjaan dapat dilihat menggunakan ltrace atau strace pada mereka. Di Linux, keduanya membaca /proc sistem file, dan untuk setiap pid (direktori) yang ditemukan, melintasi jalur dengan cara mengidentifikasi proses dengan nama atau atribut lainnya. Bagaimana ini dilakukan secara teknis, kernel dan sistem tertentu. Secara umum, mereka membaca dari /proc/<PID>/stat yang berisi nama perintah sebagai bidang ke-2. Untuk pkill -f dan pgrep periksa /cmdline entri untuk setiap entri proc PID.

pkill dan pgrep gunakan readproc panggilan sistem, sedangkan killall tidak. Saya tidak bisa mengatakan apakah ada perbedaan performa:Anda harus membandingkannya sendiri.


Linux
  1. Apa perbedaan antara InnoDB dan MyISAM?

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

  3. Perbedaan Antara .exrc Dan .vimrc?

  1. Perbedaan Antara '$ . Foo' Dan '$ ./foo'??

  2. Perbedaan Antara ~/.profile Dan ~/.bash_profile?

  3. Perbedaan Nss dan Pam?

  1. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  2. Perbedaan Getty dan Agetty?

  3. Perbedaan Antara 'env' dan 'printenv'?