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.
Dibawah ini adalah source code dasar dari sebuah daemon :
#include <stdio .h>#include <stdlib .h>#include <unistd .h>#include <sys types.h>#include <sys stat.h>int main(){pid_t process_id = 0, sid = 0;// Create child processprocess_id = fork();// Indication of fork() failureif (process_id < 0){printf("fork failed!\n");// Return failure in exit statusexit(1);}// PARENT PROCESS. Need to kill it.if (process_id > 0){printf("process_id of child process %d \n", process_id);// return success in exit statusexit(0);}//unmask the file modeumask(0);//set new sessionsid = setsid();if(sid < 0){// Return failureexit(1);}// Close stdin. stdout and stderrclose(STDIN_FILENO);close(STDOUT_FILENO);close(STDERR_FILENO);while (1){//Put your process heresleep(10);}return 0;}
Tidak ada komentar:
Posting Komentar