GNU/Linux >> Belajar Linux >  >> Linux

Cara Membunuh atau Mengakhiri Proses Linux:Panduan Utama

Sistem operasi multiprosesor seperti Linux dan BSD menggunakan beberapa metode untuk memaksimalkan penggunaan CPU. Sebuah proses hanyalah sebuah program dalam eksekusi. Karena akan ada lebih dari satu proses Linux yang berjalan pada waktu tertentu, manajemen proses di Linux sangat penting. Pengguna sering menghadapi masalah seperti pembatasan sumber daya CPU saat menjalankan terlalu banyak program. Situasi seperti ini muncul ketika CPU gagal menangani jumlah proses yang terus bertambah. Meskipun ini tidak sepenuhnya bergantung pada kekuatan CPU Anda, berurusan dengan proses yang digantung atau zombie bisa sangat membuat frustrasi. Untuk membantu Anda mengurangi kejadian seperti itu, kami menguraikan beberapa cara standar untuk menghentikan proses ini.

Kuasai Manajemen Proses Tidak Responsif di Linux

Anda akan mempelajari beberapa cara untuk menghentikan proses Linux yang tidak merespons sama sekali. Jika Anda berasal dari Windows, Anda mungkin akrab dengan Ctrl+Alt+Delete. Demikian pula, pengguna Mac memiliki metode Command+Option+Escape untuk membunuh proses yang dibekukan. Linux jauh lebih fleksibel daripada rekan-rekannya dan menawarkan lebih dari satu metode untuk menangani proses mati/tidak responsif.

Metode Berbeda untuk Membunuh Proses Linux yang Mati

Kami terutama akan menguraikan dua metode untuk membunuh proses zombie. Kami akan menggunakan terminal Linux untuk metode pertama. Untuk ini, pertama-tama kita harus mengidentifikasi id proses. Setelah berhasil diperoleh, kita dapat menggunakan PID ini untuk mematikan program dengan mengirimkan sinyal tertentu ke PID tersebut.

Anda juga akan belajar bagaimana melakukan pekerjaan mematikan Linux seperti itu dari antarmuka pengguna grafis atau jendela X. Kami akan memanfaatkan 'System Monitor' aplikasi yang tersedia di Ubuntu untuk ini. Meskipun ini adalah aplikasi GNOME, alat serupa tersedia untuk lingkungan desktop Linux lainnya.

Hentikan Proses yang Tidak Merespons Dari Baris Perintah

Ada beberapa alat untuk menghentikan proses yang tidak responsif atau terhenti dari baris perintah, termasuk bunuh , pkill , dan bunuh semua . Perintah ini bekerja dengan mengirimkan sinyal spesifik ke proses yang tidak responsif ini. Anda akan memerlukan id proses atau PID informasi sehingga Anda dapat mengirimkan sinyal penghentian yang diperlukan.

PID atau id proses adalah nomor unik yang mengidentifikasi suatu proses. Ini dibuat oleh kernel Linux selama runtime, dan penjadwal proses mengontrol aktivitas CPU mereka. Jadi, setiap kali Anda menjalankan aplikasi, kernel pertama-tama akan menelurkan proses yang diperlukan dan menetapkan nilai PID unik ini kepada mereka. Mungkin ada beberapa PID yang terkait dengan suatu proses. Selain itu, setiap proses memiliki proses induk tunggal dengan PPID (ID Proses Induk) unik.

Jadi, jika Anda dapat mengetahui PPID ini, maka Anda akan dapat mengirim sinyal mematikan menggunakan program yang dirancang untuk tujuan ini. Di bawah ini Anda akan mempelajari cara memeriksa proses yang berjalan di Linux dan mengidentifikasi PPID-nya dari terminal.

Cari Tahu Informasi PPID

- -

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

Metode 1:Menggunakan Perintah ps

Perintah ps di Linux menampilkan semua proses yang berjalan bersama informasi terkait proses lainnya seperti PID di terminal. Kita dapat menggunakan perintah ini untuk membuat daftar semua proses dan kemudian menyaring proses tertentu dengan menggunakan perintah grep Linux. Itu harus menunjukkan kepada kami informasi id proses yang kami minati.

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

Pertama, kami telah memanggil editor teks Linux di latar belakang. Kemudian kami menggunakan perintah ps di samping perintah grep untuk mengetahui PPID editor ini. Outputnya mungkin berisi beberapa id proses, tetapi kami hanya tertarik pada yang pertama karena itu adalah PPID kami. Kita juga dapat menggunakan perintah awk Linux untuk mengetahui informasi ini, seperti yang ditunjukkan di bawah ini.

$ ps aux | awk '/nano/ {print $2}'

Perintah ini lebih fleksibel karena menekan semua informasi yang tidak relevan. Ini hanya akan menampilkan informasi PPID yang kami cari.

Metode 2:Menggunakan Perintah pstree

Perintah pstree memberi kita tampilan seperti pohon dari semua proses yang berjalan. Ini memberikan tampilan grafis dari daftar tugas Linux dari jendela terminal. Anda dapat melihat PPID serta semua informasi PID dari suatu proses menggunakan perintah ini. Lihat contoh di bawah untuk mempelajari cara memanfaatkan pstree untuk menemukan PPID dari proses tertentu.

$ nano> /dev/null &
$ pstree -p | grep 'nano'$ pstree -p | awk '/nano/ {print $NF}'

Pertama, kami telah melahirkan proses di latar belakang dengan menggunakan perintah pertama. Perintah kedua kemudian mengambil PPID dari proses ini dengan menggunakan perintah grep di Linux. Terakhir, perintah ketiga menunjukkan kepada kita cara mengambil nilai ini menggunakan perintah awk.

Metode 3:Menggunakan Perintah pgrep

Perintah pgrep adalah salah satu perintah manajemen proses termudah di Linux. Ini memeriksa daftar semua proses yang berjalan dan mencetak PPID dari proses yang diberikan dalam output standar atau terminal dalam kasus kami. Ia bekerja dengan melakukan pencocokan regex dan sangat cocok untuk menulis skrip shell Linux.

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

Kami telah menelurkan proses nano yang mirip dengan contoh sebelumnya. Kemudian kita telah mendapatkan PPID-nya dengan menggunakan perintah pgrep. Setelah kita mendapatkan nilai ini, kita dapat melakukan pekerjaan mematikan Linux dengan sangat mudah.

Metode 4:Menggunakan Perintah pidof

Perintah pidof adalah cara lain yang sederhana namun berguna untuk menentukan PPID dari proses Linux. Ini menampilkan PPID dan semua PID lain yang terkait dengan suatu proses. Lihat pemeriksaan di bawah ini untuk melihat cara menggunakannya dalam praktik.

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

Saat menggunakan perintah pidof untuk memeriksa proses yang berjalan di Linux, Anda akan sering melihat beberapa PID. Biasanya, dalam kasus seperti itu, angka pertama atau terakhir adalah PPID, tergantung apakah mereka dalam urutan menaik atau menurun. Anda dapat menggunakan -s pilihan pidof untuk mengurangi ini. Ini hanya akan menampilkan nilai PPID.

Metode 5:Menggunakan Perintah atas

Perintah top memberikan tampilan real-time dari semua proses yang berjalan di sistem operasi mirip Unix. Anda dapat menggunakan ini untuk menampilkan daftar tugas Linux di terminal Anda dan mengetahui informasi 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/ {print $1}'

Karena top menyediakan keluaran waktu nyata alih-alih membuang data statis ke terminal, kami telah menggunakan -n1 dan -b pilihan untuk mencetak output statis. Kemudian Anda dapat mengambil informasi PPID dengan menggunakan perintah grep atau perintah awk di Linux.

Bunuh Proses Linux yang Tidak Merespons

Anda dapat menggunakan salah satu metode di atas untuk mengambil PPID dari proses yang tidak responsif. Setelah Anda mendapatkan ini, sekarang saatnya untuk mematikan proses sama sekali. Ada beberapa perintah yang memungkinkan kita melakukan ini, seperti bunuh , pkill , dan bunuh semua . Kita akan melihat cara kerjanya satu per satu di bagian berikut.

Metode 1:Menggunakan Perintah kill

Perintah kill banyak digunakan oleh admin Linux karena kesederhanaan dan tindakannya yang kuat. Dibutuhkan PID dari proses dan sinyal. Kernel mematikan/menghentikan eksekusi proses berdasarkan sinyal ini. Anda dapat menggunakan perintah berikutnya untuk melihat semua sinyal yang tersedia untuk perintah kill.

$ kill -l

Seperti yang Anda lihat, kill menawarkan 64 sinyal berbeda. Namun, kami hanya akan membahas dua di antaranya dalam panduan ini. Ini adalah sinyal 9 (SIGKILL) dan sinyal 15 (SIGTERM). SIGTERM atau sinyal 15 adalah metode yang aman untuk membunuh proses yang tidak responsif. SIGKILL atau sinyal 9, di sisi lain, memaksa mematikan proses Linux.

$ kill -9 8631$ kill -KILL 8631

Perintah di atas setara, dan mereka akan memaksa mematikan proses yang memiliki PID 8631. Itu adalah PPID dari proses 'nano' di sistem saya. Ganti ini dengan PID dari proses yang tidak responsif di sistem Anda.

$ kill -15 8631$ kill -TERM 8631

Perintah di atas juga setara dan akan mematikan proses dengan anggun. Itu sebabnya perlu beberapa waktu sebelum proses dimatikan. Selain itu, Anda mungkin perlu menambahkan sudo sebelum perintah kill jika proses dimiliki oleh pengguna yang berbeda.

Metode 2:Menggunakan Perintah pkill

Perintah pkill adalah salah satu perintah manajemen proses yang paling serbaguna di Linux. Ini memungkinkan kita untuk mematikan proses yang tidak responsif berdasarkan namanya, PID, pemilik, dan atribut runtime lainnya. Ini adalah alat yang sempurna untuk pengguna pemula atau orang yang tidak terbiasa dengan banyak perintah terminal standar.

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

Anda dapat menggunakan salah satu dari perintah pkill di atas untuk mematikan proses zombie/tidak responsif di Linux. Gunakan -e opsi jika Anda ingin konfirmasi tentang pekerjaan mematikan Linux. Perintah pkill juga memungkinkan pengguna untuk mengirim sinyal penghentian tertentu.

Metode 3:Menggunakan Perintah killall

Perintah killall memungkinkan pengguna untuk mematikan proses yang tidak responsif berdasarkan nama mereka. Lebih mudah digunakan tetapi dapat menimbulkan masalah jika Anda tidak berhati-hati. Karena killall menghentikan proses berdasarkan nama, selalu ada kemungkinan Anda mengakhiri proses secara kebetulan. Misalnya, jika ada berbagai versi nano yang tersedia di sistem Anda, contoh pertama akan mematikan semuanya.

$ killall nano$ killall --verbose nano$ killall --interactive nano$ killall --signal KILL nano

Contoh pertama menunjukkan penggunaan dasar perintah killall di Linux. Perintah kedua akan melaporkan apakah pekerjaan membunuh berhasil atau tidak, dan perintah ketiga akan meminta konfirmasi pengguna sebelum mematikan proses. Secara default, killall menggunakan sinyal SIGTERM untuk mematikan proses. Namun, Anda dapat menentukan sinyal secara manual, seperti yang ditunjukkan pada contoh terakhir.

Metode 4:Menggunakan Handy One-Liners

Keindahan sejati Linux terletak pada kenyataan bahwa ia memungkinkan pengguna untuk membuat kombinasi perintah yang canggih berdasarkan kebutuhan mereka. Untuk mendemonstrasikan hal ini, kami telah menguraikan beberapa kalimat sederhana di bagian ini.

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

Pada contoh pertama, kita telah menggunakan interpolasi shell untuk meneruskan PID dari proses 'nano' ke perintah kill Linux. Contoh kedua menggunakan beberapa perintah terminal sehari-hari dan pengalihan I/O untuk mematikan proses. Anda dapat membuat one-liners Anda sendiri yang bagus setelah Anda merasa nyaman dengan terminal Linux.

Metode 5:Matikan Banyak Proses menggunakan Skrip Shell Linux

Terkadang pengguna mungkin ingin menghentikan lebih dari satu proses. Kita dapat dengan mudah mengotomatisasi tugas-tugas tersebut dengan menulis skrip shell sederhana. Jika Anda tertarik dengan topik ini, lihat panduan kami sebelumnya tentang skrip shell Linux. Skrip berikut akan mengambil PPID dari proses yang ingin Anda matikan dan kemudian menghentikannya menggunakan sinyal mematikan.

$ nano proc-killer.sh
#!/usr/bin/env bashfor pro di "[email protected]"do pid=$(pgrep $pro | head -1) echo $pid comm="kill -9 $pid" eval $commdone 

Sekarang, simpan file ini dan tambahkan izin eksekusi dengan mengeluarkan perintah di bawah ini.

$ chmod +x proc-killer.sh

Sekarang Anda dapat meneruskan skrip ini ke nama proses yang ingin Anda hentikan.

$ ./proc-killer.sh nano gedit vlc

Cukup ganti argumen dengan nama proses Linux yang tidak responsif di sistem Anda.

Hentikan Proses yang Tidak Merespons Dari GUI

Anda juga dapat menghentikan proses yang tidak responsif dari antarmuka pengguna grafis atau jendela X. Kami membahas dua metode untuk melakukan ini di bagian berikut.

Metode 1:Menggunakan Aplikasi xkill

Distribusi Linux modern menggunakan jendela grafis X untuk memberikan pengalaman grafis yang elegan kepada pengguna. Ada alat sederhana yang disebut xkill yang memungkinkan pengguna untuk menutup jendela GUI yang tidak responsif. Hal ini dimungkinkan karena, di Linux, jendela judul aplikasi terpisah dari aplikasi itu sendiri.

Cukup buka emulator terminal Linux Anda dan ketik xkill. Ini akan mengubah kursor mouse Anda menjadi tombol X, yang dapat digunakan untuk mematikan jendela GUI apa pun.

$ xkill

Sekarang, yang perlu Anda lakukan hanyalah mengeklik bilah jendela aplikasi yang tidak responsif, dan aplikasi itu akan dimatikan dan menghilang seketika.

Metode 2:Menggunakan Aplikasi Monitor Sistem di Ubuntu

Sebagian besar distribusi Linux utama datang dengan semacam alat pemantauan GUI yang memungkinkan pengguna untuk menghentikan proses Linux yang digantung secara grafis. Misalnya, aplikasi Monitor Sistem di Ubuntu akan memungkinkan kita untuk menghentikan proses yang tidak responsif dengan cara yang intuitif. Anda cukup memilih proses mati dari daftar proses dan mematikannya dengan mengklik kanan pada proses dan memilih opsi mematikan.

Ada lebih banyak alternatif untuk aplikasi ini, dan kami yakin Anda dapat dengan mudah menemukannya untuk distribusi atau lingkungan desktop Anda.

Mengakhiri Pikiran

Karena manajemen proses di Linux sangat fleksibel, pengguna sering merasa frustrasi ketika berurusan dengan proses yang tidak responsif. Itulah sebabnya editor kami telah menguraikan semua cara yang mungkin untuk menghentikan proses Linux yang mati dalam panduan ini. Setelah membaca ini, Anda seharusnya dapat mematikan proses yang tidak responsif baik dari baris perintah atau dari GUI. Anda juga dapat menggunakan salah satu perintah one-liner kami untuk menangani gangguan tersebut dalam waktu sesingkat mungkin. Selain itu, Anda bahkan dapat mematikan lebih dari satu proses dengan menggunakan skrip shell sederhana kami. Jadi mudah-mudahan, Anda memperoleh informasi yang Anda cari dari panduan kami.


Linux
  1. Cara Menemukan dan Membunuh Proses Zombie di Linux

  2. Cara Membunuh Proses Terbesar Dalam Sistem Linux yang Tidak Responsif

  3. Bagaimana cara mematikan proses yang berjalan pada port tertentu di Linux?

  1. Cara mematikan proses zombie di Linux

  2. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  3. Cara Menjeda/Melanjutkan Proses di Linux

  1. Cara mematikan proses atau menghentikan program di Linux

  2. Linux – Bagaimana Cara Mengatur Afinitas Prosesor Suatu Proses Di Linux?

  3. Bagaimana cara mendapatkan ID proses untuk mematikan proses nohup?