![]() |
Cara Mematikan Beberapa Proses dengan Satu Perintah |
beberapa hari tidak post di blog miripgeeks ini, ada urusan lain yang saya kerjakan sambil refreshing, karena tidak mudah untuk menulis atau rewriter artikel tutorial, semoga kalian sehat selalu :).
kali ini saya akan share dengan judul Shell Scripting : Cara Mematikan Beberapa Proses dengan Satu Perintah. tutorial ini saya dapat dari linuxku dan sudah izin untuk rewrite artikel linux yang ada, dan izin pun di berikan :), bukan berarti blog ini plagiat, pengetahuan perlu di sebarluaskan dan sangat bermanfaat jika membantu bahkan saya sendiri pasti membutuhkan tutorial tersebut, dan jangan lupa cantumkan credit link asal sumber tutorial ini :). oke simak artikel yang saya rewrite ini :D.
Ada salah satu bug yang cukup mengganggu di Ubuntu 14.04 GNOME pada distro tersebut. Yaitu adanya proses tracker-extract, traker-miner-fs, dan tracker-store yang membuat komputer agak lag dan tidak merespon karena source yang dipakai. Solusinya mudahnya dengan mematikan proses-proses tersebut berdasarkan pidnya.
biasanya dilakukannya secara manual dengan cara mendapatkan terlebih dahulu masing-masing pidnya kemudian mematikannya satu persatu :
linux@root:~$ ps aux | grep tracker
linux 17644 0.1 0.1 127220 6796 ? SNl 10:40 0:00 /usr/lib/tracker/tracker-extract
linux 17646 0.0 0.1 43448 6240 ? SNl 10:40 0:00 /usr/lib/tracker/tracker-miner-fs
linux 17649 0.7 0.1 74108 5120 ? Dl 10:40 0:00 /usr/lib/tracker/tracker-store
linux 17950 0.0 0.0 4684 824 pts/6 S+ 10:40 0:00 grep --color=auto tracker
linux@root:~$ kill -9 17644
linux@root:~$ kill -9 17646
linux@root:~$ kill -9 17649
cara ini kurang efektif, karena pidnya selalu berubah-ubah dan harus mencari tahu tiap-tiap pidnya terlebih dahulu.
Akhirnya (admin linuxku) tercetus lah ide untuk membuat sebuah program shell scripting sederhana yang dapat melakukan looping sebanyak jumlah proses tracker yang ada, kemudian memasukkan pid-pidnya kedalam sebuah variable. Selanjutnya tinggal mematikan prosesnya berdasarkan variable yang menyimpan pid tadi.
Tantangan sebenarnya adalah bagaimana menyeleksi hasil output ps aux | grep tracker dengan hasil seperti ini :
linux@root:~$ ps aux | grep tracker
linux
17644 0.1 0.1 127220 6796 ? SNl 10:40 0:00 /usr/lib/tracker/tracker-extract
linux
17646 0.0 0.1 43448 6240 ? SNl 10:40 0:00 /usr/lib/tracker/tracker-miner-fs
linux
17649 0.7 0.1 74108 5120 ? Dl 10:40 0:00 /usr/lib/tracker/tracker-store
linux
17950 0.0 0.0 4684 824 pts/6 S+ 10:40 0:00 grep --color=auto tracker
sehingga menyingkatnya menjadi seperti ini saja :
17644
17646
17649
NB : Untuk proses grep --color=auto tracker tidak perlu, karena itu bukan proses tracker.
untuk menyeleksi kembali dengan menangkap output yang hanya mengandung lib saja.
linux
@root:~$ ps aux | grep tracker | grep lib
linux
17644 0.1 0.1 127220 6796 ? SNl 10:40 0:00 /usr/lib/tracker/tracker-extract
linux
17646 0.0 0.1 43448 6240 ? SNl 10:40 0:00 /usr/lib/tracker/tracker-miner-fs
linux
17649 0.7 0.1 74108 5120 ? Dl 10:40 0:00 /usr/lib/tracker/tracker-store
Selanjutnya percobaan untuk mengubah seluruh tabulasi menjadi hanya 1 spasi saja dengan perintah translate (tr). Untuk info lebih lengkap mengenai perintah tr, silahkan ketik tr --help.
linux
@root:~$ ps aux | grep tracker | grep lib | tr -s ' '
linux
17644 0.1 0.1 127220 6796 ? SNl 10:40 0:00 /usr/lib/tracker/tracker-extract
linux
17646 0.0 0.1 43448 6240 ? SNl 10:40 0:00 /usr/lib/tracker/tracker-miner-fs
linux
17649 0.7 0.1 74108 5120 ? Dl 10:40 0:00 /usr/lib/tracker/tracker-store
dari sini kita melihat polanya. Pid pasti selalu diantara spasi setelah kata linux dan spasi sebelum 0. Sehingga hanya tinggal memotong saja berdasarkan delimiter spasi. bisa menggunakan perintah cut dengan opsi -d (delimiter) dan -f (field) kedua. Untuk info lebih lengkap mengenai perintah cut, silahkan ketik cut --help di terminal CLI.
linux
@root:~$ ps aux | grep tracker | grep lib | tr -s ' ' | cut -d" " -f2
17644
17646
17649
sekarang kita sudah dapat output yang diinginkan. Selanjutnya tinggal membuat programnya untuk solusi ini.
buka terminal, dan buka text editor, bisa gunakan vim, gedit, atau nano. dengan extensi .sh atau bash :
linux
@root:~$ vim killtracker.sh
kemudian copy dan paste kode dengan script berikut :
#!/bin/sh
#lakukan seleksi output untuk mendapatkan pid dari tracker saja.
datapid=`ps aux | grep tracker | grep lib | tr -s ' ' | cut -d" " -f2`
#lakukan perulangan sebanyak jumlah datapid lalu masukkan setiap nilainya ke variable pid
for pid in $datapid; do
echo "PID : $pid has been killed."
kill -9 $pid
done
echo "All tracker processes have been killed."
exit 0
lalu save.
penjelasan kode diatas bisa membacanya melalui komentar.
Terakhir berikan hak akses executable pada script tersebut, agar script berjalan normal.
linux
@root:~$ chmod +x killtracker.sh
Untuk menjalankannya script yang sudah dibuat tadi, ketikkan perintah ini :
linux
@root:~$ ./killtracker.sh
sekali tembak kena 3 sekaligus :D, dan dengan mudah hanya dengan satu perintah dari program yang dibuat tadi.
selesai sudah cara mematikan Beberapa Proses dengan Satu Perintah.
semoga bermanfaat
nb : saya tidak full rewrter artikel yang ada untuk penjelasannya, hanya mengedit kata "saya" dan beberapa kata lainya karena tutorial ini didapat dari pengalaman pribadi admin linuxku dan bukan miripgeeks. hal ini saya lakukan untuk menghargai penulis asli, dan agar lolos artikel copas :). kalian bisa gunakan cara ini "menulis rewriter" dan bagaimana saya bersikap dalam dunia blogging
sumber : linuxku terima kasih
rewriter : miripgeeks
COMMENTS