Jumat, 21 November 2014

Proses Daemon di Linux

sebelum lari ke daemon kita harus mengetehau terlebih dahulu tentag PID,PPID,Child Proses,Zombie Proses,Parent proses.
PID adalah Berupa angka-angka yang dipakai dalam beberapa sistem operasi untuk mengindetifikasikan sebuah proses.
PPID adalah Merupakan PID yang bersifat Private, atau PID yang tidak langsung ditampilkan. Mengetahui parent process.
Child Proses merupakan sebuah proses yang diciptakan dari sebuah proses yang lain (parent process). Child process mewarisi atribut-atribur dari parent process seperti membuka file dari parent proses. Sebuah child process sebenarnya dibuat menggunakan fungsi fork() sebagai salinan dari parent processnya.
Parent Process merupakan proses yang telah menciptakan beberapa buah proses anak. Proses ini tercipta ketika mengeksekusi fungsi fork(), kemudian hasil dari pemggilan fork tersebut akan menciptakan beberapa child process.
Zombie Process terjadi karena adaanya child process yang di exit namun parrent processnya tidak tahu bahwa child process tersebut telah di terminate, misalnya disebabkan karena putusnya network. Sehingga parent process tidak merelease process yang masih digunakan oleh child process tersebut walaupun process tersebut sudah mati.
nah baru kita belajar daemon.
Daemon adalah sebuah proses yang bekerja pada background karena proses ini tidak memiliki terminal pengontrol. Dalam sistem operasi Windows biasanya lebih dikenal dengan sebutan service. Daemon adalah sebuah proses yang didesain supaya proses tersebut tidak mendapatkan intervensi dari user. Daemon biasanya bekerja dalam jangka waktu yang sangat lama dan bertugas menerima request dan menjalankan responsnya. Contoh dari daemon ini misalnya adalah Apache Web Server HTTP daemon. Daemon ini bekerja pada background dan menerima request HTTP pada port tertentu (biasanya 80 atau 8080) dan memberikan
respon terhadap request tersebut, berdasarkan tipe dari request tersebut.
Adapun hal-hal yang membedakan daemon dengan proses lainnya adalah: daemon tidak memiliki parent proses ID, daemon tidak memiliki pengontrol baik itu STDOUT, STDIN, maupun STDERR, dan daemon berjalan dalam previlege super user.
nah sekarang langkah-langkah mebuat daemon adalah
1.Menspawn proses menjadi induk dan anak dengan melakukan forking, kemudian membunuh proses induk.
pid_t pid,sid;
pid=fork();
if(pid < 0)
{
exit(EXIT_FAILURE);
}
if(pid > 0)
{
exit(EXIT_SUCCESS);
}
umask(0);
2.Membuat proses bekerja secara independen
sid = setsid();
if(sid < 0)
{
exit(EXIT_FAILURE);
}
3.Menutup standar I/O deskriptor yang diwarisi
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
4,Melakukan masking pada File Creation
pid_t pid,sid;
pid=fork();
if(pid < 0)
{
exit(EXIT_FAILURE);
}
if(pid > 0)
{
exit(EXIT_SUCCESS);
}
umask(0); 
5.Running Directory
sid = setsid();
if(sid < 0)
{
exit(EXIT_FAILURE);
}
if((chdir(“/home/assassin/modul2/shift2.1/”)) < 0)
{
exit(EXIT_FAILURE);
}
refrensi untuk lebih jelasnya http://xvongola.blogspot.com/2011/12/daemon-dan-konfigurasi-proses-di-linux.html.
sekian untuk blog kali ini terimakasih.

Tidak ada komentar:

Posting Komentar