精靈程序的建立

2021-07-04 07:02:59 字數 1830 閱讀 4644

//**1--實現延時--由於後台執行可能感覺不明顯

//想要結束它,我只想到關機重啟;檢視的話,ps -ef

#include

#include

#include

#include

#include

#include

#include

#include

#include

/** 精靈程序的實現

*/int main(int argc,char **argv)

if(pid>0)

//開啟日誌檔案,以便向裡面寫入執行資訊  推薦

//(2)建立唯一的會話id(sid)  

//建立乙個新的會話(一組程序的集合)

//會話:乙個主程序+若干子程序

//會話的主程序可以控制終端

pid_t sid=setsid();

if(sid<0)

//(3)改變當前的工作路徑到乙個安全的地方 (一般情況下是根目錄)

if(chdir("/")<0)

//(4)改變檔案的掩碼  擁有檔案的所有許可權

umask(0);

//(5)關閉標準檔案描述符 

close(stdin_fileno); 

close(stdout_fileno);  

close(stderr_fileno);   

//(6)編寫實際的精靈程序**  

/*deamon-specific initialization here*/  

/*the big loop*/  

while(1)

return 0;

//**2 --實現3秒檔案的建立--由於檔案的大小一直為0,就是說沒有內容,不用擔心一些問題,呵呵

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

//獲得形如20150709格式的時間

void gettime(char *szfilename)

void func()

;gettime(szfilename);//20150709

char szcommand[64]=;

sprintf(szcommand,"touch %s.txt",szfilename);

//建立檔案  execl!!

system(szcommand);

}int main(int argc,char **argv)

if(pid>0)

//開啟日誌檔案,以便向裡面寫入執行資訊  

//(2)建立唯一的會話id(sid)  

pid_t sid=setsid();

if(sid<0)

//(3)改變當前的工作路徑到乙個安全的地方 

if(chdir(".")<0)

//(4)改變檔案的掩碼  

umask(0);

//(5)關閉標準檔案描述符 

close(stdin_fileno); 

close(stdout_fileno);  

close(stderr_fileno);   

//(6)編寫實際的精靈程序**  

/*deamon-specific initialization here*/  

/*the big loop*/  

while(1)

return 0;

}

精靈程序與殭屍程序

精靈程序 精靈程序 d a e m o n 是生存期長的一種程序。它們常常在系統引導裝入時起動,在系統關閉時終止。因為它們沒有控制終端,所以說它們是在後台執行的。所有精靈程序都以超級使用者 使用者 i d為0 的優先權執行。殭屍程序 在unix 系統中,乙個程序結束了,但是他的父程序沒有等待 呼叫w...

linux下的守護(精靈)程序daemon

include include include include include include include include intmain else if pid 0 2.在子程序中建立新會話 setsid 3.改變當前目錄為根目錄 chdir 4.重設檔案許可權掩碼 umask 0 5.關閉檔...

精靈 守護 程序及其實現

精靈程序 也稱守護程序,是執行在後台的一種特殊程序。它獨 立於控制終端並且周期性地執行某種任務或等待處理某些發生的事件。它不屬於任何乙個會話,它自成會話,自成程序組。一般而言,後台程序永遠不能退出。所有的精靈程序的父程序都是1,即所有的精靈程序都是孤兒程序。精靈程序一般以d結尾。用ps axj 來檢...