Rabu, 27 Maret 2013

Membunuh Banyak Proses

Adalah saat yang menyebalkan ketika baru saja menyalakan komputer/laptop/notebook, menyolokkan modem, lalu tiba-tiba system load processor menjadi penuh (100%) padahal baru membuka 1 browser. Hal ini saya alami ketika meminjam modem HUAWEI milik teman. Dalam mesin saya telah terinstall Mobile Partner bawaan modem smartfren. Okey, kali ini saya tidak akan membahas masalah modemnya, saya hanya akan membahas bagaimana cara 'membunuh' banyak proses dalam satu barus perintah. 

Ketika modem dicolokkan, hal ini memicu skrip /sbin/startMobilePartner untuk dieksekusi. Dalam kasus saya, proses ini terjadi secara berlebihan. Hingga saya memutuskan untuk membuang mode executable-nya dengan menuliskan perintah sudo chmod -x /sbin/startMobilePartner agar skrip ini tidak dieksekusi di kemudian hari.

Beberapa menit awal saya kurang menyadari apa yang terjadi dengan mesin/notebook saya. Lalu saya terpikir untuk melihat proses apa saja yang memakan prosesor saya saat itu. Saya coba lihat dengan XFCE Task manager (distro yang saya gunakan Ubuntu Studio 12.04, dengan DE XFCE), eh, ternyata dia kolaps juga alias tak merespon hingga harus saya bunuh dengan paksa. Lalu saya lihat dengan htop, dari sini ketahuan tersangkanya adalah /sbin/startMobilePartner. Lalu saya gunakan perintah berikut untuk menyimpan proses beserta PIDnya (Process ID) ke dalam bentuk teks :

ps ax | grep MobilePartner > /tmp/pid.txt

Sekarang saya sudah mendapatkan proses yang jadi tersangkanya. Selanjutnya saya harus mencari cara bagaimana dari file tersebut saya hanya mengambil PIDnya saja. Saya bertanya pada mbah google sejenak (untungnya masih bisa buat browsingan), dalam satu klik saya menemukan solusinya di stackoverflow. Akhirnya saya simpulkan perintah yang akan saya gunakan adalah sebagai berikut :

cd /tmp

awk '{print $1}' pid.txt | cut -d, -f 1

Perintah tersebut menghasilkan daftar PID yang akan dibunuh dengan perintah kill (pid.txt adalah nama berkas yang dibuat sebelumnya) : 

Process ID yang akan dikill

Sekarang saatnya mengeksekusi perintah kill -9 pid yang lengkapnya adalah sebagai berikut :

sudo kill -9 $(awk '{print $1}' pid.txt | cut -d, -f 1)

Proses berhasil dibunuh
Pesan kill: No such process mungkin karena prosesnya sudah mati, terlihat ketika saya periksa di htop proses yang saya sebutkan di awal sudah tidak ada lagi. 

Alhamdulillah, kini saya dapat kembali bekerja/bermain dengan nyaman tanpa perlu merestart sistem operasi/notebook yang sedang saya gunakan. It's really fun.