Sebagai penguji perisian, kadangkala kita perlu mengetahui bagaimana proses zombie pada sistem kita. Kita boleh menjalankan pelbagai ujian jika kita mengetahui secara spesifik program dan ID proses mana yang dikaitkan dengan proses zombie itu.
Apa itu Proses Zombie?
Zombie atau proses yang tidak berfungsi di Linux adalah proses yang telah diselesaikan, tetapi kemasukannya masih kekal dalam jadual proses kerana kurangnya korespondensi antara proses ibu bapa dan anak. Biasanya, proses ibu bapa memeriksa status proses anaknya melalui fungsi tunggu (). Apabila proses anak selesai, fungsi menunggu memberi isyarat kepada ibu bapa untuk keluar sepenuhnya dari memori. Walau bagaimanapun, jika ibu bapa gagal memanggil fungsi menunggu untuk mana-mana anaknya, proses anak tetap hidup dalam sistem sebagai proses mati atau zombie. Proses zombie ini mungkin terkumpul, dalam jumlah yang banyak, pada sistem anda dan mempengaruhi prestasinya.
Apabila anda menjalankan perintah teratas dan zombie sedang berjalan, ia akan ditunjukkan oleh baris kedua output seperti berikut:
Namun, jika tidak ada proses zombie yang berjalan di sistem anda, anda dapat membuat boneka untuk tujuan pengujian seperti yang dijelaskan dalam artikel ini. Kami menjalankan proses ini di Ubuntu 18.04.
Membuat Proses Zombie
Di bahagian ini, kami akan menulis program c untuk menjalankan proses zombie pada sistem kami.
Buka editor teks dan masukkan kod berikut:
Kod
#sertakan#sertakan #sertakan int utama () pid_t child_pid; child_pid = garpu (); jika (child_pid> 0) tidur (60); lain jalan keluar (0); pulangkan 0;
Simpan fail ini sebagai zombie.c
Proses zombie yang dibuat melalui kod ini akan berjalan selama 60 saat. Anda boleh meningkatkan jangka masa dengan menentukan waktu (dalam beberapa saat) dalam fungsi tidur ().
Buka Terminal dan jalankan arahan berikut untuk menyusun program ini:
$ cc zombie.c -o zombie
Sekarang fail yang boleh dilaksanakan dengan nama zombie akan dibuat.
Harap perhatikan bahawa anda perlu memasang penyusun GNU C jika belum dipasang pada sistem anda melalui arahan berikut:
$ sudo apt-get install build-essential
Sekarang jalankan program zombie melalui arahan berikut:
./ zombie
Anda akan melihat output berikut:
Anda boleh menggunakan ID proses induk (PPID) dan ID proses anak (PID) semasa ujian; contohnya dengan membunuh proses zombie ini melalui perintah kill.
Semasa proses ini berjalan, anda dapat melihat prestasi sistem di tetingkap Terminal yang lain melalui perintah atas. Anda akan dapat melihat 1 proses zombie melalui baris kedua output.
Perintah ps sekarang juga akan menunjukkan proses yang tidak berfungsi ini dan program zombie yang bertanggungjawab untuknya:
$ ps axo stat, ppid, pid, comm | grep -w tidak berfungsi
Perintah ini akan memberi anda status, parentID, ID proses, program yang menjalankan proses zombie (program zombie yang kami jalankan dalam tutorial ini).
Anda kini telah belajar bagaimana membuat proses zombie dummy yang mudah. Ini akan memberi anda gambaran tentang bagaimana penampilannya di sistem anda dan bagaimana anda dapat menggunakannya untuk tujuan pengujian.