Daemon Process
Pada kesempatan kali ini, saya akan menjelaskan tentang Daemon, Daemon adalah sebuah prosen yang berjalan di background dan tidak berinteraksi langsung dengan user. Ada 6 cara untuk membuat sebuah Daemon process, cara tersebut diantaranya :
1. Fork parent process dan menghentikan parent process.
Melakukan forking untuk membuat process baru kemudian mematikan parent process.
2. Mengubah mode file menggunakan UMASK(0).
Agar dapat mengeksekusi file yang dibuat oleh daemon, mode file harus diubah agar bisa dieksekusi atau dibaca. Fungsi UMASK ini mirip dengan chmod.
3. Membuat Session ID (SID).
Untuk membuat child process, ia harus memiliki session ID yang berbeda dari program lain agar ia dapat beroperasi.
4. Mengubah direktori kerja.
Direktori kerja dipindahkan ke root agar ia tidak bisa dihapus dan kemudian menghasilkan error.
5. Menutup file descriptor.
Kemudian agar daemon tidak perlu kendali dari terminal, maka kita harus menutup file descriptornya.
6. Membuat loop utama.
Ini merupakan inti kerja dari daemon, yang merupakan sebuah program yang bekerja pada background agar terus berjalan sampai dimatikan.
Berikut hasil akhir dari proses diatas.
Untuk mengetes apakah daemon berjalan, kita akan mencoba untuk membuat logfile dari process yang berjalan.
dari kodingan di atas kita menggunakan ps ux untuk mencari proses yang sedang dijalankan oleh user kemudian menyimpannya ke dalam file B14_log.txt setiap 15 detik sekali.
Untuk menjalankannya kita dapat mengetikkan : gcc (nama file) -o (nama file bebas) pada terminal.
ini berfungsi untuk mengubah file c menjadi daemon.
Kemudian untuk menjalankannya kita perlu mengetikkan : ./(nama file) pada terminal.
Apabila berhasil akan muncul file .txt yang berisi log dari proses yang dijalankan oleh user.
Untuk menghentikan proses daemon kita dapat menggunakan : pkill (nama proses).
--------------------------------------------------------------------------
Sekian sedikit ilmu yang dapat saya bagika pada kesempatan kali ini, semoga ilmunya bermanfaat, terima kasih :).










