Cara Membunuh Proses mengikut Nama di Linux

Paksa berhenti melakukan proses salah laku menggunakan arahan Linux ini

Untuk menerangkan maksud 'Proses' dalam perkataan yang paling mudah ialah ia adalah contoh berjalan bagi mana-mana aplikasi atau program pada sistem anda. Anda mungkin menjalankan berbilang aplikasi secara serentak seperti menyemak imbas, mendengar muzik yang berfungsi pada terminal anda, dsb. Terdapat banyak proses latar belakang yang dikaitkan dengan aplikasi ini yang dijalankan oleh pengguna.

Setiap aplikasi atau program yang berjalan pada sistem anda mencipta berbilang proses yang dikaitkan dengan aplikasi tunggal anda. Kadangkala ini mungkin menjadi masalah dan menyingkirkan proses ini adalah satu-satunya pilihan yang anda ada.

'Membunuh' proses ialah satu pilihan berguna yang diberikan Linux kepada anda untuk menghentikan proses yang sedang berjalan, sama ada proses latar depan atau proses latar belakang. Dalam artikel ini, kami akan menyemak arahan seperti bunuh, pkill dan bunuh semua untuk memaksa berhenti sebarang proses pada sistem.

Mengapa membunuh Proses?

Memahami konsep membunuh proses adalah penting sebelum meneruskan dalam tutorial ini. Pembunuhan mungkin kelihatan sebagai cara yang sangat kejam untuk menyatakan konsep itu, tetapi maksudnya secara kiasan ialah membatalkan proses secara paksa.

Sekarang, mengapa menggugurkan atau menghentikan proses yang berterusan? Apabila berbilang proses berjalan di latar belakang, semua atau beberapa proses mungkin tidak berfungsi dan boleh menyebabkan sistem anda tidak berfungsi. Ini menangguhkan tugas anda yang sedang berjalan kerana proses yang tidak berfungsi boleh membekukan sistem anda buat seketika.

Kadangkala, berhenti daripada semua proses salah laku nampaknya satu-satunya pilihan untuk memulihkan keadaan normal pada sistem anda. Linux membenarkan anda untuk mematikan proses menggunakan pid atau nama proses.

Menggunakan pgrep perintah

Kebanyakan pengguna Linux biasa dengan grep perintah. The pgrep arahan boleh digunakan pada baris yang sama grep.

pgrep arahan apabila digunakan, memaparkan pid proses berjalan seperti yang dinyatakan dalam arahan. Perintah ini akan terbukti sangat membantu semasa menggunakan pkill perintah.

Sintaks Umum:

pgrep [pilihan] [corak]

Pilihan penting tersedia dengan pgrep perintah

PilihanPenerangan
-uid proses senarai yang dimiliki oleh pengguna tertentu
-cmengira bilangan proses padanan
-sayasenaraikan sahaja nama proses
-asenaraikan laluan penuh nama proses

Mari kita tunjukkan penggunaan pgrep perintah menggunakan contoh.

pgrep -u gaurav gnome

Di sini, kami ingin melihat pids gnome proses yang dimiliki oleh pengguna 'gaurav'. Pilihan -u membolehkan anda menyenaraikan pids proses yang dimiliki oleh pengguna tertentu. Dalam kes ini, pengguna gaurav.

Pengeluaran:

gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

Semasa kami meneruskan tutorial ini, pgrep arahan akan membantu kami dalam mengesahkan sama ada proses telah dimatikan atau masih berjalan.

Marilah kita sekarang beralih ke pkill perintah dan pelaksanaannya.

menggunakan pkill perintah

Anda boleh menggunakan pkill arahan dalam Linux untuk mematikan proses menggunakan nama proses. Walaupun anda tidak tahu pid daripada beberapa proses, walaupun begitu anda boleh mematikan proses tertentu itu menggunakan pkill perintah.

Proses boleh ditentukan dengan nama lengkapnya atau nama separa semasa menggunakan pkill perintah. Walaupun anda memasukkan nama separa proses, proses pkill arahan akan memadankan semua proses yang sedang berjalan dengan nama padanan yang telah anda masukkan dalam arahan.

Sintaks:

pkill [options][process_name_pattern] 

Contoh:

Mari kita paparkan proses yang sedang berjalan menggunakan atas perintah. Anda juga boleh menggunakan ps arahan untuk menyenaraikan proses.

atas
atas - 14:24:02 ke atas 3:12, 1 pengguna, purata beban: 0.29, 0.48, 0.58 Tugasan: 221 jumlah, 1 berlari, 172 tidur, 0 berhenti, 1 zombie %Cpu(s): 5.6 kami, 1.0 sy , 0.0 ni, 92.9 id, 0.4 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 3928240 jumlah, 610456 percuma, 2233152 terpakai, 1084632 buff/cache KiB Swap: 40838 percuma, 4878 percuma 1187268 avail Mem PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 4077 gaurav 20 0 3.312.128 673.480 118.360 S 19.6 17.1 15: 13.23 Kandungan Web 3712 gaurav 20 0 3.953.008 453.544 116.476 S 4.0 11.5 9: 28.39 MainThread 2010 gaurav 20 0 4084232 111096 45.024 S 1.7 2.8 3: 14.85 gnome-shell 1197 root 20 0 1.039.612 33704 22988 S 1.0 0.9 3: 04,42 Xorg 1426 couchdb 20 0 3.772.396 16908 2520 S 0.7 0.4 1: 50,83 beam.smp 3288 gaurav 20 0 722.480 25.048 18.272 S 0.7 0.6 0: 06,84 gnome-terminal- 3915 gaurav 20 0 2.804.900 231.524 111.228 S 0.7 5.9 0: 54,42 Kandungan web 4146 gaurav 20 0 3.017.924 245.304 120.604 S 0.7 6.2 2: 01,21 Kandungan web 4417 gaurav 20 0 2.964.208 234.396 119.160 S 0.7 6.0 0 :59.90 Kandungan Web 4860 gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0:48.20 Kandungan Web 16007 gaurav 20 0 41944 3780 3110.2 R 0.0: 01. 

menggunakan atas arahan akan memaparkan berbilang proses pada terminal anda. Mari kita cuba memaparkan proses dengan nama tertentu. Kami akan menggunakan grep arahan untuk memaparkan proses yang namanya sepadan dengan rentetan 'mongo'.

atas | grep -i mongo

Nota: Di sini, saya telah menggunakan pilihan -i untuk menjadikan carian tidak sensitif huruf besar.

Output arahan ini akan memaparkan proses yang sepadan dengan nama 'mongo'

 1158 MongoDB 20 0 288.564 4848 1320 S 0.7 0.1 1: 03,22 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 1.0 0.1 1: 03,25 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 0.7 0.1 1: 03,27 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 0.7 0.1 1: 03,29 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 0.7 0.1 1: 03,31 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 0.7 0.1 1: 03,33 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 1.0 0.1 1: 03,36 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 0.7 0.1 1: 03,38 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 0.7 0.1 1: 03,40 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 1.0 0.1 1: 03,43 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 0.7 0.1 1: 03.45 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 1.0 0.1 1: 03,48 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 0.3 0.1 1: 03,49 mongod 1158 MongoDB 20 0 288.564 4848 1320 S 1.0 0.1 1: 03,52 mongod 1158 MongoDB 20 0 288564 4848 1320 S 0.7 0.1 1:03.54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.57 mongod

Sekarang, kita akan menggunakan pkill perintah untuk membunuh proses yang dinamakan 'mongo'.

pkill mongo

Perintah ini kini akan membunuh proses mongo. Kami boleh mengesahkan jika proses telah dipaksa untuk berhenti dengan menggunakan pgrep arahan yang memaparkan pid proses berjalan mengikut kriteria yang ditentukan oleh pengguna.

gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$

Perintah ini tidak akan mengembalikan nilai. Ini mengesahkan bahawa proses 'mongo' kini dibunuh menggunakan pkill perintah.

Pilihan yang kerap digunakan dengan pkill perintah

Semasa menggunakan pkill arahan kami akan memerlukan pilihan yang disebutkan untuk penggunaan yang betul dan mudah pkill perintah.

PilihanPenerangan
-fpadankan dengan hujah penuh termasuk ruang, petikan, aksara khas
-uuntuk memaklumkan proses pkill agar sepadan dengan proses yang dijalankan oleh pengguna yang ditentukan
-1memuatkan semula proses
-9membunuh proses
-15dengan anggun membatalkan proses

Mari kita lihat satu lagi contoh pkill arahan menggunakan -f pilihan.

Terdapat dua arahan yang sedang dilaksanakan pada terminal seperti yang ditunjukkan di bawah.

ping bbc.com ping youtube.com

Kedua-dua proses dimulakan oleh ping perintah. Sekarang, katakan kita ingin menamatkan hanya satu proses "ping youtube.com" maka kita perlu menggunakan -f pilihan dengan pkill arahan yang membunuh proses dengan nama tertentu termasuk ruang dan petikan daripada nama proses.

Perintah:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$ 

Keputusan:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) bait data. 64 bait daripada bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=1 ttl=117 masa=30.9 ms 64 bait daripada bom12s08-in-f14.1e100.net (142.250.net) =117 masa=121 ms 64 bait daripada bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=206 ttl=117 masa=86.5 ms 64 bait daripada bom12s08-in-f10.206.208-in-f14.206 ): icmp_seq=207 ttl=117 masa=105 ms Ditamatkan gaurav@ubuntu:~$ 

Di sini, "ping youtube.com"proses kini dibunuh dan "ping bbc.com” masih berjalan di terminal.

Dalam kes, jika kita telah menggunakan pkill ping perintah, ia akan membunuh kedua-duanya ping proses, yang tidak diingini.

Isyarat digunakan dengan pkill perintah

pkill memaksa sesuatu proses untuk berhenti dengan menghantar isyarat khusus kepada proses itu. Terdapat tiga isyarat yang mungkin pkill arahan boleh dihantar ke proses bergantung pada arahan yang diberikan pengguna.

Berikut ialah senarai isyarat yang ada.

IsyaratSpesifikasi
1(HUP)memuatkan semula proses yang ditentukan
9 (BUNUH)membunuh proses yang ditentukan
15 (JANGKA)perlahan-lahan menghentikan atau membatalkan proses yang ditentukan

Untuk tutorial ini, kami akan sangat bergantung pada BUNUH isyarat. Mari kita lihat beberapa contoh untuk memahaminya dengan lebih baik.

Menggunakan pgrep perintah untuk mendapatkan pid sepadan dengan nama apache.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -KIll apache

ATAU anda juga boleh menggunakan arahan dengan nombor (cth. 1, 9, 15)

pkill -9 apache

Kedua-dua arahan yang ditunjukkan di atas akan membunuh proses apache. Mengesahkan dengan pgrep perintah lagi.

gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$

sebagai pgrep arahan tidak mengembalikan output, membuktikan bahawa proses apache telah dibunuh.

Kesimpulan

Dalam tutorial ini, kami belajar tentang pkill arahan dan cara ia digunakan untuk mematikan proses menggunakan nama proses secara langsung. Kami juga belajar tentang pgrep arahan yang digunakan untuk mengambil id proses proses yang dijalankan oleh mana-mana pengguna tertentu. The pgrep arahan membolehkan kami menyemak silang sama ada proses itu terbunuh.