Assalamualaikum Wr. Wb. Bagaimana kabar sobat sekalian? Saya
doakan semoga sobat sehat selalu agar bisa menjalani aktifitas sebagaimana
biasanya. Hmmm… sudah cukup lama blog ini tidak update lagi, maklumlah
akhir-akhir ini tugas kuliah selalu datang silih berganti, belum lagi kegiatan
diluar kuliah yang tak kalah menyibukkan, namanya juga mahasiswa sobat tau
sendirilah. Seorang mahasiswa belum dapat dikatakan mahasiwa kalau belum
berkontribusi bagi sekitarnya, sebab mahasiswa sendiri masih memiliki semangat
yang tinggi agar bisa bermanfaat bagi sekitarnya.
Sepertinya intronya terlalu panjang :D biar sobat ga bosen
kita langsung saja ke pokok bahasan utama kita, yakni Daemon. Jika dilihat dari
Judulnya, sekarang ini kita akan berkenalan dengan daemon. Pernahkah sobat
sekalian mendengar kata Daemon? Lantas apa yang terbersit dipikiran sobat
mendangar kata tersebut?
Apakah ini? Mungkin ini? Atau
yang ini?
Sepertinya tebakan sobat belum tepat :v. Daemon yang kita bahas
disini adalah Daemon yang ada pada linux. Jadi, daemon
adalah proses yang berjalan di balik layar (background) dan tidak berinteraksi
langsung dengan user melalui standard input/output. Fungsi dari daemon sendiri
adalah sebagai program yang bekerja secara background dan biasanya berlangsung
dalam waktu yang lama, di windows bisanya disebut dengan program service.
Berikut langkah-langkah pembuatan daemon:
- Forking dan Pembunuhan Proses Induk
Langkah pertama dalam
pembuatan daemon adalah dengan melakukan forking, dengan begitu kita dapat
menghasilkan induk beserta anaknya.
Kemudian mematikan proses induk, dengan begitu sistem operasi mengira
akan bahwa proses telah selesai sehingga akan kembali ke terminal user. Dari
langkah ini kita telah mendapatkan satu proses yang hampir bekerja di
background, yaitu proses anak yang melanjutkan program setelah kita membunuh
induknya.
- Mengubah mode file menggunakan UMASK(0)
Pada umumnya daemon
bekerja dalam previlege super user. Untuk alasan keamanan, daemon harus
memproteksi setiap file yang dibuat. Fungsi umask() akan mencegah file previleges
yang tidak aman dalam setiap pembuatan file. Selain itu, untuk menulis beberapa
file (termasuk logs) yang dibuat oleh daemon, mode file harus diubah untuk
memastikan bahwa file tersebut dapat ditulis dan dibaca secara benar.
- Membuat Proses Bekerja Secara Independen
Agar daemon yang kita buat dapat
berjalan dan bekerja secara independen, maka kita dapat melakukannya dengan
cara memanggil fungsi setsid(), sehingga proses akan mendapatkan session ID
yang baru.
- Running Directory
Direktori kerja suatu daemon harus
berada pada direktori yang selalu hidup. Oleh karena itu, kita harus mengakses
dimana direktori dari daemon itu berada. Karena bisa saja pada saat starting,
working directory berada pada user home. Dan daemon akan bekerja hingga sistem
reboot, maka file system user directory tidak akan pernah bisa di unmount. Pengubahan
tempat direktori kerja dapat dilakukan dengan implementasi fungsi chdir ().
Fungsi chdir() mengembalikan nilai -1 jika gagal.
- Menutup Standard I/O Descriptor yang diwarisi
Untuk menjegah intervensi dari luar,
maka Standard I/O descriptor dan descriptor yang diwarisi dari proses induk
harus ditutup. Ada tiga jenis standar I/O descriptor, yaitu standard input
(STDIN), standard output (STDOUT), dan standard error (STDERR). Karena daemon tidak perlu menggunakan kendali terminal,
file descriptor dapat berulang dan berpotensi memiliki bahaya dalam hal
keamanan. Untuk mengatasi hal tersebut maka digunakan implemtasi fungsi
close().
- Membuat Loop Utama
Daemon bekerja dalam
jangka waktu tertentu, sehingga diperlukan sebuah looping. Didalam looping
tersebut kita dapat menambahkan perintah apa saja yang kita inginkan.
Hasil akhirnya akan seperti ini:
Nah itu dia sedikit pengetahuan tentang daemon yang saya ketahui. Untuk next time, kita akan mencoba mambuat suatu program menggunakan daemon tersebut. Jadi tetap pentengin blog ini ya sob.
Tobe continueted....



No comments:
Post a Comment