![]()
Membunuh suatu proses terkadang merupakan satu-satunya cara untuk menghilangkannya. Meskipun namanya kasar, “membunuh” suatu proses berarti “memaksanya untuk berhenti”. Berikut cara melakukannya dari baris perintah Linux atau macOS.
Apa itu Proses?
Menjalankan program seperti browser web Anda, proses latar belakang yang terkait dengan lingkungan desktop Anda, dan layanan sistem Linux semuanya adalah proses.
Anda dapat mengelompokkan proses menjadi dua kelompok:
Proses latar depan adalah proses yang telah dimulai atau diluncurkan oleh pengguna. Mereka mungkin ada di jendela terminal, atau mungkin aplikasi grafis. Proses latar belakang adalah semua proses yang dimulai secara otomatis dan tidak berinteraksi dengan pengguna. Mereka tidak mengharapkan masukan dari pengguna dan juga tidak menyajikan hasil atau keluaran kepada mereka. Proses latar belakang adalah hal-hal seperti layanan dan daemon.
Jika proses latar depan adalah bagian depan staf teater dan para aktor, proses latar belakang adalah tim “di belakang layar” di belakang panggung.
Ketika proses berperilaku buruk atau tidak berfungsi, proses tersebut dapat memakan terlalu banyak waktu CPU, menghabiskan RAM Anda, atau memasukkan komputasi yang ketat loop dan menjadi tidak responsif. Aplikasi grafis mungkin menolak merespons klik mouse. Aplikasi terminal mungkin tidak akan pernah mengembalikan Anda ke command prompt.
Apa Fungsi Membunuh Proses?
“Membunuh” suatu proses berarti “memaksa proses untuk berhenti”. Ini mungkin diperlukan jika proses menolak untuk merespons.
Linux menyediakan perintah kill, pkill, dan killall untuk memungkinkan Anda melakukan hal itu. Perintah ini dapat digunakan dengan semua jenis proses, grafis atau baris perintah, latar depan atau latar belakang.
Perintah kill
Untuk menggunakan kill, Anda harus mengetahui ID proses (PID) dari proses yang ingin Anda hentikan. Perintah ps dapat digunakan untuk menemukan PID suatu proses.
Untuk melakukan pencarian ps melalui semua proses, gunakan opsi -e (semua proses). Dianjurkan untuk menyalurkan output melalui less, akan ada cukup banyak. Ketik ps, spasi,-e, spasi, | (karakter pipa), spasi lagi, lalu ketik lebih sedikit. Tekan Enter untuk menjalankan perintah.
ps -e | less
Ini akan memberi Anda daftar proses yang terlihat mirip dengan gambar di bawah. Anda dapat mencari ke depan dalam waktu lebih singkat menggunakan tombol / dan Anda dapat mencari ke belakang menggunakan ? key.
Untuk masuk ke dalam proses yang Anda minati, kirimkan output dari ps melalui grep dan tentukan nama — atau bagian dari nama — proses tersebut.
ps -e | grep shutter
Setelah Anda menemukan PID dari proses yang ingin Anda hentikan, teruskan ke perintah kill sebagai parameter. Untuk menghentikan proses rana yang diidentifikasi oleh perintah sebelumnya, gunakan perintah ini:
kill 2099
Perintah kill adalah pembunuh diam-diam — perintah ini tidak memberi Anda umpan balik apa pun jika berhasil.
Ini juga berfungsi sama untuk mematikan proses di macOS.
Pkill Perintah
Perintah pkill memungkinkan Anda mematikan proses — atau proses — berdasarkan nama. Anda tidak perlu mengidentifikasi proses dengan PID. Untuk menggunakan pkill, Anda memberikan istilah pencarian yang digunakan pkill untuk memeriksa daftar proses yang berjalan. Proses pencocokan dihentikan. Jadi, Anda harus yakin bahwa istilah pencarian tersebut dieja dengan benar.
Sebagai jaring pengaman, Anda dapat menggunakan perintah pgrep sebelum menggunakan perintah pkill. Perintah pgrep juga menerima istilah pencarian. Ini akan mencantumkan PID setiap proses yang cocok dengan istilah pencarian. Ini aman karena pgrep tidak akan mengeluarkan sinyal mematikan apa pun ke proses, dan jika Anda salah mengetikkan istilah pencarian, Anda tidak akan mematikan proses lain secara tidak sengaja. Anda dapat memastikan bahwa Anda telah memikirkan istilah pencarian dengan benar sebelum meneruskannya ke pkill. Baik pkill dan pgrep memperlakukan istilah pencarian dengan cara yang sama. Perlakuannya sangat mirip sehingga mereka berbagi halaman manual yang sama.
Misalkan ada proses dengan “subq” di namanya. Kami akan menggunakan ps -u dave | perintah grep untuk mengintip di balik tirai. Anda dapat melihat bahwa “subq” akan cocok dengan proses itu dan proses itu saja. Itu hanya agar Anda dapat melihat nama lengkap prosesnya.
ps -u dave | grep subq
Mari kita asumsikan pengguna kita belum melakukan itu; yang mereka tahu hanyalah nama proses berisi substring “subq.” Mereka menggunakan pgrep untuk memeriksa bahwa hanya ada satu yang cocok dengan istilah pencarian. Mereka kemudian menggunakan istilah pencarian itu dengan pkill.
pgrep subq pkill subq
Anda dapat menggunakan pkill untuk mematikan beberapa proses sekaligus. Di sini pengguna menjalankan pgrep untuk memeriksa berapa banyak proses yang diluncurkan Chrome. Mereka menggunakan pkill untuk membunuh mereka semua. Mereka kemudian memeriksa dengan pgrep bahwa semuanya telah dihapus.
pgrep chrome pkill chrome
Jika beberapa proses dengan nama yang sama sedang berjalan, tetapi Anda tidak ingin mematikan semuanya, Anda dapat menggunakan pgrep dengan opsi -f (baris perintah) untuk mengidentifikasi proses yang mana dan yang mana. Contoh sederhananya adalah dua proses ping. Anda ingin membunuh salah satu dari mereka tetapi tidak yang lain. Anda dapat menggunakan baris perintahnya untuk membedakannya. Perhatikan penggunaan tanda kutip untuk membungkus parameter baris perintah.
pgrep -f "ping 192.168.4.22" pkill -f "ping 192.168.4.22"
Perintah killall
Peringatan: Di sistem operasi Solaris dan OpenIndiana, perintah killall akan mematikan semua proses milik Anda. Jika Anda root atau jika Anda telah mengeluarkan sudo killall, Anda akan me-reboot komputer Anda! Selama penelitian untuk artikel ini, perilaku ini dikonfirmasi dengan versi terbaru OpenIndiana Hipster 2018.10.
Perintah killall beroperasi dengan cara yang mirip dengan perintah pkill tetapi dengan perbedaan tertentu. Daripada meneruskan istilah pencarian ke perintah, Anda harus memberikan nama proses yang tepat.
Anda tidak dapat memberikan kecocokan sebagian dengan nama proses; Anda harus memberikan seluruh nama proses, seperti yang ditunjukkan:
killall shutt killall shutter
Opsi -y (lebih muda dari) memungkinkan Anda untuk mematikan proses yang telah berjalan kurang dari jangka waktu tertentu. Periode diberikan dalam angka yang diikuti oleh salah satu satuan berikut:
s (detik) m (menit) h (jam) d (hari) w (minggu) M (bulan, catatan, kapital “M”) y (tahun)
Untuk membunuh sebuah proses bernama ana yang baru saja diluncurkan dan membiarkan instance ana lama berjalan, Anda dapat menggunakan parameter berikut dengan killall, jika Anda bereaksi dalam dua menit:
killall -y 2m ana
Opsi -o (lebih tua dari) memungkinkan Anda untuk mematikan proses yang telah berjalan lebih lama dari jangka waktu tertentu. Perintah ini akan mematikan semua koneksi ssh yang telah berjalan lebih dari satu hari:
killall -o 1d sshd
Bisakah Anda Membunuh Proses Apa Pun?
Perintah ini akan memungkinkan Anda mengidentifikasi dan menghentikan proses yang salah dengan akurat dan aman dengan benar. Namun, Anda bisa menjadi terlalu senang, dan sangat mungkin untuk menghentikan proses yang tidak seharusnya Anda lakukan.
Selalu berhati-hati. Pertama, pastikan proses yang akan Anda hentikan benar-benar sesuai dengan yang Anda inginkan. Kedua, periksa kembali — berhati-hatilah dan pastikan proses yang ditargetkan adalah proses yang ingin Anda akhiri. Lanjutkan dengan menghentikan proses setelah Anda puas.
Jika Anda menghentikan suatu proses secara tidak sengaja, dunia bukanlah akhir dari segalanya. Hasil yang paling mungkin terjadi adalah ada masalah dan Anda harus me-restart PC Anda, atau Anda mungkin kehilangan pekerjaan yang telah Anda lakukan dalam program yang terkait dengan proses yang Anda hentikan.