Bagaimana cara mematikan/membunuh proses yang berjalan di linux. Disini Anda akan berkenalan dengan perintah kill, killall dan sedikit shell scripting untuk mengambil PID dari proses yang sedang berjalan, dan kemudian membunuh proses tersebut.
Misal, ada kasus proses apache2 masih berjalan. Padahal kita sudah menjalankan skrip untuk mematikan service apache2, /etc/init.d/apache2 stop berkali-kali. Dan ini menyebabkan aplikasi web yang Anda jalankan bermasalah.
Solusi utk masalah ini adalah, entah kita restart servernya (pakai perintah reboot), atau cara yang tanpa restart server keseluruhan. Kita matikan/bunuh semua proses apache2 yang tersisa dengan perintah kill.
Periksa proses apache2 yang masih tersisa,
#ps ax |grep apache2
Hasilnya, misal seperti pada contoh di bawah ini.
21496 ? S 0:01 /usr/sbin/apache2 -k start
21500 ? S 0:00 /usr/sbin/apache2 -k start
21501 ? S 0:00 /usr/sbin/apache2 -k start
22643 ? S 0:01 /usr/sbin/apache2 -k start
23737 ? S 0:00 /usr/sbin/apache2 -k start
24707 ? S 0:00 /usr/sbin/apache2 -k start
25853 ? S 0:00 /usr/sbin/apache2 -k start
26836 ? S 0:00 /usr/sbin/apache2 -k start
27765 ? S 0:00 /usr/sbin/apache2 -k start
kill -9 PID
Perhatikan baris di atas, kolom pertama adalah PID dari proses yang sedang berjalan. Untuk mematikan proses apache2 di atas, salah satu caranya dengan perintah kill -9 PID
#sudo kill -9 21496
#sudo kill -9 21500
#sudo kill -9 21501
#sudo kill -9 22463
dst (untuk semua PID yang ada dikolom pertama
Atau pakai kalau mau satu baris
#sudo kill -9 21496 21500 21501 22643 (dst utk semua PID yang ada di kolom pertama)
killall NAMA_PROSES
Cara lain yang bisa dilakukan, adalah dengan perintah killall, diikuti dengan nama proses yang mau dimatikan.
#sudo killall apache2
Tapi cara ini tidak selamanya berhasil. Jika gagal, cobalah cara yang pertama.
Menggunakan Bantuan BASH
Ini adalah gabungan cara pertama, dan bantuan sedikit pemograman di shell bash.
for p in `ps ax |grep apache2| cut -d " " f 1`; do kill -9 $p; done
Perhatikan perintah di atas, cut -d " " f 1 akan memprint semua PID yang ada dikolom pertama, dan selanjutnya akan kita gunakan untuk mematikan proses apache2.
Cara lain, serupa dengan cut, tapi menggunakan awk.
for p in `ps ax |grep apache2| awk '{print $1}'`; do kill -9 $p; done
No comments:
Post a Comment