Perintah A-Z

Cara Membunuh atau Menamatkan Proses Linux Panduan Terbaik

Cara Membunuh atau Menamatkan Proses Linux Panduan Terbaik

Sistem operasi multiprosesan seperti Linux dan BSD menggunakan beberapa kaedah untuk memaksimumkan penggunaan CPU. Proses hanyalah program dalam pelaksanaan. Oleh kerana akan ada lebih dari satu proses Linux yang berjalan pada waktu tertentu, pengurusan proses di Linux sangat penting. Pengguna sering menghadapi masalah seperti pendikit sumber CPU semasa menjalankan terlalu banyak program. Situasi seperti ini muncul apabila CPU gagal menangani peningkatan jumlah proses. Walaupun ini tidak bergantung sepenuhnya pada kekuatan CPU anda, menangani proses digantung atau zombie boleh membuat anda kecewa. Untuk membantu anda mengurangkan kejadian tersebut, kami menggariskan beberapa kaedah standard untuk membunuh proses ini.

Menguasai Pengurusan Proses Tidak Responsif di Linux


Anda akan belajar beberapa cara untuk menghentikan proses Linux yang sama sekali tidak bertindak balas. Sekiranya anda datang dari Windows, anda mungkin biasa dengan Ctrl + Alt + Delete. Begitu juga, pengguna Mac mempunyai kaedah Command + Option + Escape untuk membunuh proses beku. Linux jauh lebih serba boleh daripada rakan sejawatnya dan menawarkan lebih daripada satu kaedah untuk menangani proses mati / tidak responsif.

Kaedah berbeza Membunuh Proses Linux Mati


Kami akan menggariskan dua kaedah untuk membunuh proses zombie. Kami akan menggunakan terminal Linux untuk kaedah pertama. Untuk ini, pertama-tama kita perlu mengenal pasti id proses. Setelah berjaya diperoleh, kita dapat menggunakan PID ini untuk mematikan program dengan menghantar isyarat khusus ke PID tersebut.

Anda juga akan belajar bagaimana melakukan pekerjaan membunuh Linux seperti itu dari antara muka pengguna grafik atau tetingkap X. Kami akan memanfaatkan 'Monitor Sistem' aplikasi yang terdapat di Ubuntu untuk ini. Walaupun ini adalah aplikasi GNOME, alat serupa tersedia untuk persekitaran desktop Linux yang lain.

Hentikan Proses Tidak Responsif Dari Baris Perintah


Terdapat beberapa alat untuk menghentikan proses yang tidak responsif atau digantung dari baris arahan, termasuk bunuh, pkill, dan bunuh semua. Perintah ini berfungsi dengan menghantar isyarat tertentu ke proses yang tidak responsif ini. Anda akan memerlukan id proses atau PID maklumat supaya anda dapat menghantar isyarat penamatan yang diperlukan kepada mereka.

PID atau id proses adalah nombor unik yang mengenal pasti proses. Ini dibuat oleh kernel Linux semasa runtime, dan penjadual proses mengendalikan aktiviti CPU mereka. Oleh itu, setiap kali anda menggunakan aplikasi, kernel akan mula-mula memunculkan proses yang diperlukan dan memberikannya nilai PID unik ini. Terdapat beberapa PID yang berkaitan dengan proses. Lebih-lebih lagi, setiap proses mempunyai proses ibu bapa tunggal dengan PPID unik (Parent Process ID).

Oleh itu, jika anda dapat mengetahui PPID ini, anda akan dapat menghantar isyarat membunuh menggunakan program yang dirancang untuk tujuan ini. Di bawah ini anda akan belajar bagaimana memeriksa proses yang sedang berjalan di Linux dan mengenal pasti PPID mereka dari terminal.

Dapatkan Maklumat PPID


Anda dapat mengetahui PPID proses menggunakan beberapa perintah pengurusan proses di Linux, seperti pidof, pstree, dan pgrep. Mari kita periksa satu persatu dan lihat bagaimana mendapatkan PID dari proses Linux.

Kaedah 1: Menggunakan Perintah ps


Perintah ps di Linux memaparkan semua proses yang berjalan di samping maklumat berkaitan proses lain seperti PID di terminal. Kita dapat menggunakan perintah ini untuk menyenaraikan semua proses dan kemudian menyaring proses tertentu dengan menggunakan perintah Linux grep. Ia harus menunjukkan kepada kami maklumat id proses yang kami minati.

$ nano> / dev / null &
$ ps aux | grep "nano"

Pertama, kami menggunakan editor teks Linux di latar belakang. Kemudian kami telah menggunakan perintah ps di samping perintah grep untuk mengetahui PPID penyunting ini. Hasilnya mungkin mengandungi beberapa id proses, tetapi kami hanya berminat dengan yang pertama kerana itu adalah PPID kami. Kami juga dapat menggunakan perintah awk Linux untuk mengetahui maklumat ini, seperti yang ditunjukkan di bawah.

$ ps aux | awk '/ nano / cetak $ 2'

Perintah ini lebih fleksibel kerana menekan semua maklumat yang tidak berkaitan. Ia hanya akan menunjukkan maklumat PPID yang kita cari.

Kaedah 2: Menggunakan Perintah pstree


Perintah pstree memberikan kita pandangan seperti semua proses yang berjalan. Ia memberikan gambaran grafik senarai tugas Linux dari tetingkap terminal. Anda boleh melihat PPID serta semua maklumat PID proses menggunakan arahan ini. Lihat contoh di bawah untuk mengetahui cara memanfaatkan pstree untuk mencari PPID proses tertentu.

$ nano> / dev / null &
$ pstree -p | grep 'nano' $ pstree -p | awk '/ nano / cetak $ NF'

Pertama, kami telah menghasilkan proses di latar belakang dengan menggunakan perintah pertama. Perintah kedua kemudian mengambil PPID proses ini dengan menggunakan perintah grep di Linux. Akhirnya, arahan ketiga menunjukkan kepada kita bagaimana mendapatkan nilai ini menggunakan perintah awk.

Kaedah 3: Menggunakan Perintah pgrep


Perintah pgrep adalah salah satu perintah pengurusan proses termudah di Linux. Ia memeriksa senarai semua proses yang sedang berjalan dan mencetak PPID proses tertentu dalam output standard atau terminal dalam kes kami. Ia berfungsi dengan melakukan pencocokan regex dan sangat sesuai untuk menulis skrip shell Linux.

$ nano> / dev / null &
$ pgrep 'nano'

Kami telah menghasilkan proses nano sama seperti contoh sebelumnya. Kemudian kami telah memperoleh PPID-nya dengan menggunakan perintah pgrep. Sebaik sahaja kita memperoleh nilai ini, kita dapat menjalankan tugas membunuh Linux dengan sangat mudah.

Kaedah 4: Menggunakan Perintah pidof


Perintah pidof adalah kaedah lain yang mudah tetapi berguna untuk menentukan PPID proses Linux. Ia memaparkan PPID dan semua PID lain yang berkaitan dengan proses. Lihat pemeriksaan di bawah untuk melihat bagaimana menggunakannya dalam praktik.

$ nano> / dev / null &
$ pidof nano $ pidof -s nano

Semasa menggunakan perintah pidof untuk memeriksa proses yang berjalan di Linux, anda akan sering melihat banyak PID. Biasanya, dalam kes seperti itu, nombor pertama atau terakhir adalah PPID, bergantung pada sama ada mereka berada dalam urutan menaik atau mengikut keturunan. Anda boleh menggunakan -s pilihan pidof untuk mengurangkan ini. Ia hanya akan memaparkan nilai PPID.

Kaedah 5: Menggunakan Perintah atas


Perintah teratas memberikan pandangan masa nyata semua proses yang berjalan dalam sistem operasi seperti Unix. Anda boleh menggunakannya untuk memaparkan senarai tugas Linux di terminal anda dan mengetahui maklumat PID dari proses tertentu.

$ atas

Gunakan perintah berikut untuk mengambil PPID proses tertentu dari output perintah teratas.

$ nano> / dev / null &
$ atas -n1 -b | grep 'nano' $ top -n1 -b | awk '/ nano / cetak $ 1'

Oleh kerana bahagian atas memberikan output masa nyata dan bukannya membuang data statik ke terminal, kami telah menggunakan -n1 dan -b pilihan untuk mencetak output statik. Kemudian anda boleh mendapatkan maklumat PPID dengan menggunakan perintah grep atau awk di Linux.

Bunuh Proses Linux yang Tidak Responsif


Anda boleh menggunakan salah satu kaedah di atas untuk mendapatkan PPID proses yang tidak responsif. Setelah anda memperolehnya, sudah waktunya untuk membunuh prosesnya sama sekali. Terdapat beberapa arahan yang membolehkan kita melakukan ini, seperti bunuh, pkill, dan bunuh semua. Kami akan melihat bagaimana mereka berfungsi satu persatu di bahagian berikut.

Kaedah 1: Menggunakan Command kill


Perintah membunuh banyak digunakan oleh pentadbir Linux kerana kesederhanaan dan tindakannya yang mantap. Ia memerlukan PID proses dan isyarat. Kernel membunuh / menghentikan pelaksanaan proses berdasarkan isyarat ini. Anda boleh menggunakan perintah seterusnya untuk melihat semua isyarat yang ada pada perintah kill.

$ bunuh -l

Seperti yang anda lihat, kill menawarkan 64 isyarat yang berbeza. Walau bagaimanapun, kami hanya akan membincangkan dua daripadanya dalam panduan ini. Ini adalah isyarat 9 (SIGKILL) dan isyarat 15 (SIGTERM). SIGTERM atau isyarat 15 adalah kaedah yang selamat untuk membunuh proses yang tidak responsif. SIGKILL atau isyarat 9, sebaliknya, memaksa membunuh proses Linux.

$ kill -9 8631 $ kill -KILL 8631

Perintah di atas adalah setara, dan mereka akan memaksa proses yang mempunyai PID 8631. Itulah PPID proses 'nano' dalam sistem saya. Gantikan ini dengan PID proses yang tidak responsif dalam sistem anda.

$ kill -15 8631 $ kill -TERM 8631

Perintah di atas juga setara dan akan membunuh prosesnya dengan baik. Itulah sebabnya mengapa ia memerlukan sedikit masa sebelum proses tersebut dibunuh. Lebih-lebih lagi, anda mungkin perlu menambah sudo sebelum arahan kill jika proses tersebut dimiliki oleh pengguna yang berbeza.

Kaedah 2: Menggunakan Perintah pkill


Perintah pkill adalah salah satu perintah pengurusan proses yang paling serba boleh di Linux. Ini membolehkan kita membunuh proses yang tidak responsif berdasarkan namanya, PID, pemilik, dan atribut runtime lain. Ini adalah alat yang sempurna untuk memulakan pengguna atau orang yang tidak biasa dengan banyak perintah terminal standard.

$ pkill nano $ pkill 8631 $ pkill -e nano $ pkill -f nano

Anda boleh menggunakan mana-mana arahan pkill di atas untuk membunuh proses zombie / tidak responsif di Linux. Menggunakan -e pilihan jika anda mahukan pengesahan mengenai pekerjaan kill Linux. Perintah pkill juga membolehkan pengguna menghantar isyarat penamatan tertentu.

Kaedah 3: Menggunakan Command killall


Perintah killall membolehkan pengguna membunuh proses yang tidak responsif berdasarkan namanya. Ia lebih mudah digunakan tetapi boleh menimbulkan masalah jika anda tidak berhati-hati. Oleh kerana killall menghentikan proses berdasarkan nama, selalu ada kemungkinan anda akhirnya membunuh proses secara kebetulan. Sebagai contoh, jika terdapat versi nano yang berbeza dalam sistem anda, contoh pertama akan membunuh semuanya.

$ killall nano $ killall --verbose nano $ killall - interaktif nano $ killall --signal KILL nano

Contoh pertama menunjukkan penggunaan asas arahan killall di Linux. Perintah kedua akan melaporkan sama ada pekerjaan membunuh berjaya atau tidak, dan perintah ketiga akan meminta pengesahan pengguna sebelum membunuh prosesnya. Secara lalai, killall menggunakan isyarat SIGTERM untuk proses pembunuhan. Walau bagaimanapun, anda boleh menentukan isyarat secara manual, seperti yang ditunjukkan dalam contoh terakhir.

Kaedah 4: Menggunakan Satu Lapisan Berguna


Keindahan sebenar Linux terletak pada kenyataan bahawa ia membolehkan pengguna membuat kombinasi perintah yang canggih berdasarkan keperluan mereka. Untuk menunjukkan ini, kami telah menggariskan beberapa bahagian dalam bahagian ini.

$ nano> / dev / null &
$ kill -9 $ (pgrep nano) $ ps aux | grep -e 'nano' | awk 'cetak $ 2' | xargs membunuh -9

Dalam contoh pertama, kami telah menggunakan interpolasi shell untuk meneruskan PID proses 'nano' ke perintah kill Linux. Contoh kedua menggunakan beberapa arahan terminal setiap hari dan pengalihan I / O untuk mematikan prosesnya. Anda boleh menguruskan sendiri satu-satunya pelapis apabila anda selesa dengan terminal Linux.

Kaedah 5: Bunuh Beberapa Proses menggunakan Skrip Shell Linux


Kadang kala pengguna mungkin mahu menghentikan lebih dari satu proses. Kita boleh mengautomasikan tugas-tugas tersebut dengan mudah dengan menulis skrip shell sederhana. Sekiranya anda berminat dengan topik ini, maka periksa panduan sebelumnya mengenai skrip shell Linux. Skrip berikut akan mengambil PPID dari proses yang ingin anda bunuh dan kemudian menghentikannya menggunakan isyarat membunuh.

$ nano proc-killer.sh
#!/ usr / bin / env bash untuk pro di "$ @" do pid = $ (pgrep $ pro | head -1) echo $ pid comm = "kill -9 $ pid" eval $ comm selesai

Sekarang, simpan fail ini dan tambahkan kebenaran pelaksanaan dengan mengeluarkan perintah di bawah ini.

$ chmod + x proc-killer.sh

Anda kini boleh memberikan skrip ini nama proses yang ingin anda tamatkan.

$ ./ pembunuh proc.sh nano gedit vlc

Cukup ganti argumen dengan nama proses Linux yang tidak responsif dalam sistem anda.

Hentikan Proses Tidak Responsif Dari GUI


Anda juga boleh menghentikan proses yang tidak responsif dari antara muka pengguna grafik atau tetingkap X. Kami membincangkan dua kaedah untuk melakukan ini di bahagian berikut.

Kaedah 1: Menggunakan Aplikasi xkill


Pengedaran Linux moden menggunakan tetingkap grafik X untuk memberi pengguna pengalaman grafik yang elegan. Terdapat alat ringkas yang disebut xkill yang membolehkan pengguna menutup tetingkap GUI yang tidak responsif. Ini mungkin kerana, di Linux, tetingkap tajuk aplikasi terpisah dari aplikasi itu sendiri.

Cukup pergi ke emulator terminal Linux anda dan ketik xkill. Ini akan mengubah kursor tetikus anda menjadi butang X, yang dapat digunakan untuk membunuh tetingkap GUI apa pun.

$ xkill

Sekarang, yang perlu anda lakukan hanyalah klik pada bar tetingkap aplikasi yang tidak responsif, dan ia akan mati dan hilang serta-merta.

Kaedah 2: Menggunakan Aplikasi Monitor Sistem di Ubuntu


Sebilangan besar pengedaran Linux arus perdana dilengkapi dengan beberapa jenis alat pemantauan GUI yang membolehkan pengguna menghentikan proses Linux yang digantung secara grafik. Sebagai contoh, aplikasi Monitor Sistem di Ubuntu akan membolehkan kita menghentikan proses yang tidak responsif secara intuitif. Anda hanya boleh memilih proses mati dari senarai proses dan membunuhnya dengan mengklik kanan pada proses dan memilih pilihan membunuh.

Terdapat banyak alternatif lain untuk aplikasi ini, dan kami pasti anda dapat dengan mudah mencari alternatif untuk persekitaran pengedaran atau desktop anda.

Pemikiran Berakhir


Oleh kerana pengurusan proses di Linux sangat serba boleh, pengguna sering merasa kecewa ketika berhadapan dengan proses yang tidak responsif. Itulah sebabnya editor kami telah menggariskan semua cara yang mungkin untuk menamatkan proses Linux yang mati dalam panduan ini. Setelah membaca ini, anda seharusnya dapat membunuh sebarang proses yang tidak responsif dari baris perintah atau dari GUI. Anda juga boleh menggunakan mana-mana arahan satu kapal untuk menangani gangguan tersebut dalam waktu sesingkat mungkin. Lebih-lebih lagi, anda bahkan boleh membunuh lebih dari satu proses tunggal dengan menggunakan skrip shell sederhana kami. Oleh itu, semoga anda memperoleh maklumat yang anda mahukan dari panduan kami.

Cara Menggunakan Xdotool untuk Merangsang Klik dan Penekanan Tetikus di Linux
Xdotool adalah alat baris arahan sumber terbuka dan bebas untuk mensimulasikan klik dan tekan kekunci tetikus. Artikel ini akan merangkumi panduan rin...
5 Produk Tetikus Komputer Ergonomik Teratas untuk Linux
Adakah penggunaan komputer yang berpanjangan menyebabkan rasa sakit di pergelangan tangan atau jari anda? Adakah anda mengalami sendi kaku dan selalu ...
Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...