“ZOMBIE” pernahkah
anda mendengar kata itu atau memainkan game yang bergenre horror seperti Left 4
death, Resident Evil atau Plant vs Zombie ? Sekarang saya akan menjelaskan
sedikit tentang zombie proses di sebuah sistem operasi.Di dalam sistem operasi UNIX
terdapat sebuah konsep parent process dan child process. Dengan menggunakan
system call fork. Sebuah process dapat menciptakan sebuah process lain yang
menduplikasikan seluruh image dari process tersebut.Oleh sebab itu Zombie process yaitu proses dalam sistem yang telah
selesai mejalankan eksekusinya tetapi proses tersebut tampak seakan-akan masih
berjalan padahal aplikasi induknya sudah tertutup.Hal tersebut dinamakan zombie
karena memang perilakunya mirip dengan zombie yaitu seakan-akan masih hidup padahal
dia telah mati.
Baiklah sekarang kita
melakukan eksperimen dengan membuat proses (kelinci percobaan) yang nantinya
akan kita bunuh.Berikut code nya :
Dari code di atas terlihat
bahwa kita melakukan forking dan menampilkan ID dari child dan parent sehingga
kita dapat membunuh proses yang sedang berjalan tersebut.Setelah program di
execute akan menampilkan ID dari child dan parent kemudian kita membuka
terminal baru untuk membunuh anaknya dengan kill ID dari anak dengan perintah
code kill -9 PID kemudian setelah
anak death tanpa parent nya mengetahui kita akan mengecek dengan perintah code ps aux yang akan menampilkan data
dibawah ini
Kita melihat pada ID
5342 terdapat simbol Z+ dan prosesnya bernama <defunct> itu berarti proses
tersebut telah terjangkit virus berbahaya yang menyebabkan dia berubah menjadi
zombie dan akan menyerang anda !!!! . Sebenarnya
process ini sudah berhenti dieksekusikan oleh CPU. Ketika process ini berhenti
dieksekusi process ini akan mengirimkan signal SIGCHLD ke parent process.
Ketika parent process tidak menghandle signal tersebut maka child process akan
seakan-akan tetap hidup. Lain halnya kalau tadi kita memberi signal kepada
parent process .Tapi bagaimanapun cerita ini harus berakhir dengan happy ending
oleh karena itu sebelum anda terjangkit virus zombie anda harus membunuh zombie
itu, bukan dengan M4A1, P90, MP-7, Heavy Mechine Gun,ataupun Dragunov Sniper
Rifle tetapi sebaiknya kita bunuh parentnya agar proses anak dapat dihentikan
dengan perintah yang sama kill -9 PID
Proses zombie ini akan mati apabila parent prosesnya mati. Namun adakalanya
proses zombie agak susah dimatikan karena kelihatan prosesnya sudah mati, jika sudah kebayakan zombi proses maka dapat
di kill parent proses atau merestart servicenya.
Berikut saya jelaskan
beberapa sinyal proses :
kill
Perintah kill akan membunuh (atau menghentikan) suatu
proses. Dengan menggunakan kill ini kami mengirimkan sinyal ke proses.
daftar sinyal
Menjalankan proses dapat menerima sinyal dari satu
sama lain atau dari pengguna. Anda dapat memiliki daftar sinyal dengan
mengetikkan kill-l, yang merupakan huruf l, bukan nomor 1.
kill -1
(SIGHUP)
Hal ini umum di Linux menggunakan SIGHUP sinyal
pertama (atau HUP atau 1) untuk memberitahu suatu proses yang harus membaca
kembali file konfigurasinya. Dengan demikian, -1 membunuh 1 perintah memaksa
proses init (init selalu berjalan dengan pid 1) untuk membaca kembali file
konfigurasinya.
kill -15
(SIGTERM)
Sinyal SIGTERM juga disebut kill standar. Setiap kali
kill dijalankan tanpa menentukan sinyal, kill -15 diasumsikan.
kill -9 (SIGKILL)
SIGKILL ini berbeda dari sebagian sinyal lain dalam
hal itu tidak dikirim ke proses tersebut, tetapi untuk kernel Linux. Kill -9
juga disebut sure kill. Kernel akan menembak jatuh proses. Sebagai pengembang
Anda tidak memiliki alat untuk mencegat sinyal kill -9.
killall
Perintah killall juga akan menjadi default untuk
mengirimkan sinyal 15 kepada proses.
Perintah ini dapat
digunakan oleh ketika mematikan sistem.
pkill
Anda dapat menggunakan perintah pkill untuk membunuh
proses dengan nama perintahnya.
No comments:
Post a Comment