方法一:
使用傳統的fork()函式。示例**如下:
static void daemon_init ( const char *workdir, mode_t mask )
/** first child continues
** become session leader
*/setsid();
signal( sighup, sig_ign );
if ( 0 != fork() )
/** second child continues
** change working directory, chdir( "/" )
*/chdir( workdir );
/** clear our file mode creation mask, umask( 0 )
*/umask( mask );
j = open( "/dev/null", o_rdwr );
dup2( j, 0 );
dup2( j, 1 );
dup2( j, 2 );
j = getdtablesize();
for ( i = 3; i < j; i++ )
return;
} /* end of daemon_init */
方法二:
呼叫daemon()函式。示例**如下:
daemon(1, 0);
有些系統不支援daemon函式。不過如果你的程式只在linux下執行,那就沒問題。
補充:如果你只是想在退出telnet或者putty的時候「程序不退出」,那麼你需要的也許只是處理一下sighup。
Linux 建立守護程序(daemon)
要變成daemon,乙個程式需要完成下面的步驟 執行乙個fork 之後父程序退出,子程序繼續執行。結果就是daemon成為了init程序的子程序。之所以要做這一步是因為下面兩個原因 子程序呼叫setsid 開啟乙個新回話並釋放它與控制終端之間的所有關聯關係。如果daemon從來沒有開啟過終端裝置,那...
linux 守護程序 daemon
原文出處 daemon程式簡介 daemon是長時間執行的程序,通常在系統啟動後就執行,在系統關閉時才結束。一般說daemon程式在後台執行,是因為它沒有控制終端,無法和前台的使用者互動。daemon程式一般都作為服務程式使用,等待客戶端程式與它通訊。我們也把執行的daemon程式稱作守護程序。比如...
Linux 守護程序Daemon
守護程序是生存期長的一種程序。linux常用於伺服器,程式通常不執行在前台。執行於前台的程序和終端關聯,一旦終端關閉,程序也隨之退出。因為守護程序不和終端關聯,因此它的標準輸出和標準輸入也無法工作,除錯資訊應該寫入到普通檔案中,以便將來進行錯誤定位和除錯。而且守護程序通常以root許可權執行。程式示...