Cara Membunuh Proses Linux Menggunakan Kill, Pkill dan Killall

Cara Membunuh Proses Linux Menggunakan Kill, Pkill dan Killall

Sistem operasi Linux dilengkapi dengan a Bunuh Perintah Untuk menamatkan proses. Perintah itu memungkinkan untuk terus menjalankan pelayan tanpa perlu reboot setelah perubahan/kemas kini besar. Inilah kekuatan besar Linux dan ini adalah salah satu sebab, mengapa Linux sedang berjalan 96.4% pelayan, di planet ini.

Bunuh Perintah menghantar isyarat, isyarat yang ditentukan ke proses yang sedang berjalan. Perintah Kill dapat dilaksanakan dengan beberapa cara, secara langsung atau dari skrip shell.

[Anda mungkin juga suka: Cari 15 proses teratas dengan penggunaan memori dengan 'atas' dalam mod batch]

Menggunakan bunuh perintah dari /usr/bin memberi anda ciri tambahan untuk membunuh proses dengan nama proses menggunakan pkill.

Bunuh Penggunaan Perintah

Sintaks biasa untuk Bunuh Perintah adalah:

# membunuh [isyarat atau pilihan] PID (s)

Untuk Bunuh Perintah a Nama isyarat boleh jadi:

Nama isyarat Nilai isyarat Tingkah laku Sighup 1 hangup sigkill 9 bunuh isyarat sigterm 15 tamat

Jelas dari tingkah laku di atas, Sigterm adalah cara lalai dan paling selamat untuk membunuh proses. Sighup adalah cara yang kurang selamat untuk membunuh proses daripada Sigterm. Sigkill adalah cara paling tidak selamat di antara tiga di atas, untuk membunuh proses yang menamatkan proses tanpa menyimpan.

Untuk membunuh proses, kita perlu mengetahui proses proses proses. A Proses adalah contoh program. Setiap kali program bermula, secara automatik unik Pid dihasilkan untuk proses itu.

Setiap proses dalam Linux mempunyai pid. Proses pertama yang bermula apabila sistem linux booted adalah - proses init, oleh itu ia diberikan nilai '1' dalam kebanyakan kes.

[Anda mungkin juga suka: semua yang anda perlu tahu mengenai proses di Linux [Panduan Komprehensif]]

Di dalamnya adalah proses induk dan tidak dapat dibunuh dengan cara ini, yang memastikan bahawa proses induk tidak dibunuh secara tidak sengaja. Di dalamnya memutuskan dan membenarkan dirinya dibunuh, di mana membunuh hanyalah permintaan untuk penutupan.

Senaraikan semua proses linux berjalan

Untuk mengetahui semua proses dan sepadan dengan mereka pid, Jalankan arahan PS berikut.

# ps -a
Output sampel
Pid tty time cmd 1 ? 00:00:01 init 2 ? 00:00:00 kthreadd 3 ? 00:00:00 Migrasi/0 4 ? 00:00:00 ksoftirqd/0 5 ? 00:00:00 Migrasi/0 6 ? 00:00:00 Watchdog/0 7 ? 00:00:01 Acara/0 8 ? 00:00:00 cgroup 9 ? 00:00:00 Khelper 10 ? 00:00:00 NETNS 11 ? 00:00:00 Async/mgr 12 ? 00:00:00 PM 13 ? 00:00:00 Sync_supers 14 ? 00:00:00 BDI-Default 15 ? 00:00:00 KintegrityD/0 16 ? 00:00:00 kblockd/0 17 ? 00:00:00 KACPID 18 ? 00:00:00 KACPI_NOTIFY 19 ? 00:00:00 KACPI_HOTPLUG 20 ? 00:00:00 ATA/0 21 ? 00:00:00 ATA_AUX 22 ? 00:00:00 KSUSPEND_USBD

Bagaimana dengan menyesuaikan output di atas menggunakan sintaks sebagai 'Proses pidof'.

# pidof mysqld
Output sampel
1684

Cara lain untuk mencapai matlamat di atas adalah mengikuti sintaks di bawah.

# ps aux | grep mysqld
Output sampel
Root 1582 0.0 0.0 5116 1408 ? S 09:49 0:00/bin/sh/usr/bin/mysqld_safe --datadir =/var/lib/mysql - -socket =/var/lib/mysql/mysql.SOCK --PID-File =/var/run/mysqld/mysqld.pid - -basedir =/usr --user = mysql mysql 1684 0.1 0.5 136884 21844 ? SL 09:49 1:09/usr/libexec/mysqld-------------"owan.log --pid-file =/var/run/mysqld/mysqld.pid - -socket =/var/lib/mysql/mysql.Sock Root 20844 0.0 0.0 4356 740 pts/0 s+ 21:39 0:00 grep mysqld 

[Anda mungkin juga suka: Cara Mencari 15 Proses Teratas dengan Penggunaan Memori di Linux]

Cara Membunuh Proses di Linux

Sebelum kita melangkah ke hadapan dan melaksanakan a Bunuh Perintah, Beberapa perkara penting yang perlu diperhatikan:

  • Pengguna boleh membunuh semua prosesnya.
  • Pengguna tidak dapat membunuh proses pengguna lain.
  • Pengguna tidak boleh membunuh proses sistem yang digunakan.
  • Pengguna root boleh membunuh proses peringkat sistem dan proses mana-mana pengguna.

Cara lain untuk melaksanakan fungsi yang sama adalah dengan melaksanakan 'pgrep'Perintah.

# pgrep mysql
Output sampel
3139

Untuk membunuh proses di atas Pid, Gunakan perintah membunuh seperti yang ditunjukkan.

Bunuh -9 3139

Perintah di atas akan membunuh proses yang mempunyai pid=3139, di mana Pid ialah Nilai berangka proses.

Cara lain untuk melaksanakan fungsi yang sama boleh ditulis semula sebagai.

# Kill -Sigterm 3139

Begitu juga 'Bunuh -9 PID'sama dengan'Kill -Sigkill Pid' dan begitu juga sebaliknya.

Cara Membunuh Proses di Linux Menggunakan Nama Proses

Anda mesti mengetahui nama proses, sebelum membunuh dan memasuki nama proses yang salah mungkin mengecilkan anda.

# pkill mysqld 

Bunuh lebih daripada satu proses pada satu masa.

# Bunuh PID1 PID2 PID3 atau # Kill -9 PID1 PID2 PID3 atau # Kill -Sigkill PID1 PID2 PID3 

Bagaimana jika proses mempunyai terlalu banyak contoh dan beberapa proses kanak -kanak, kami mempunyai arahan 'bunuh semua'Atau pkill. Kedua-duanya adalah satu-satunya arahan keluarga ini, yang mengambil nama proses sebagai argumen di tempat nombor proses.

Sintaks:
# Killall [Isyarat atau Pilihan] Nama Proses atau # Nama Proses PKill 

Untuk membunuh semua contoh mysql Bersama dengan proses kanak -kanak, gunakan arahan sebagai berikut.

# Killall mysqld atau # pkill mysqld 

Anda sentiasa boleh mengesahkan status proses jika ia berjalan atau tidak, menggunakan mana -mana arahan di bawah.

# Service MySQL Status atau # Systemctl Status MySQL # Pgrep MySQL # ps -aux | grep mysql 

Itu sahaja buat masa ini, dari sisi saya. Saya akan segera berada di sini dengan topik lain yang menarik dan bermaklumat. Sehingga itu, teruskan, disambungkan ke Tecmint, dan sihat. Jangan lupa memberi anda Maklum balas yang berharga di bahagian komen.