目錄
守護程序功能的實現訊號處理函式的進一步完善
【ngx_daemon()函式】
【main中呼叫】int ngx_daemon()
ngx_parent = ngx_pid;
ngx_pid = getpid();
if (setsid() == -1)
umask(0);
int fd = open("/dev/null", o_rdwr);
if (fd == -1)
if (dup2(fd, stdin_fileno) == -1)
if (dup2(fd, stdout_fileno) == -1)
if (fd > stderr_fileno)
}return 0;
}
【注意】
【訊號處理函式:防止單獨kill子程序時子程序變成殭屍程序】
static void ngx_signal_handler(int signo, siginfo_t *siginfo, void *ucontext)
} action = (char *)"";
if(ngx_process == ngx_process_master)
}else if(ngx_process == ngx_process_worker)
else
if(siginfo && siginfo->si_pid)
else
if (signo == sigchld)
return;
}static void ngx_process_get_status(void)
if(pid == -1)
if(err == echild && one)
if (err == echild)
ngx_log_error_core(ngx_log_alert,err,"waitpid() failed!");
return;
} one = 1;
if(wtermsig(status))
else
} return;
}
通訊架構實戰 3 7 守護程序詳解 範例演示
一 普通程序執行觀察 ps eo pid,ppid,sid,tty,pgrp,comm,stat,cmd grep e bash pid nginx a 程序有對應的終端,如果終端退出,那麼對應的程序也就消失了 它的父程序是乙個bash b 終端被佔住了,你輸入各種命令這個終端都沒有反應 二 守護程...
APUE學習筆記 19 守護程序
by 潘雲登 對於商業目的下對本文的任何行為需經作者同意。寫在前面 1.本文內容對應 unix 環境高階程式設計 第 2版 第 13章。2.總結了守護程序的基本概念 程式設計規則以及如何進行出錯處理。3.守護程序 守護程序也稱精靈程序 daemon 是生存期較長的一種程序。它們常常在系統自舉時啟動,...
學習筆記 fork實現守護程序
目標 fork的父程序作為守護程序監測子程序,如果子程序掛了,則可以實現子程序的重啟。include include include include include include include include include 共享記憶體一定要包含這個標頭檔案,否則執行會出現段錯誤 include...