[ZZ]如何將程式以Daemon方式運行?

來源:互聯網
上載者:User
如何將程式以Daemon方式運行?
以Daemon方式啟動並執行程式,在運行過程中與控制台無關,即不受控制台訊號影響,在控制台退出後也繼續保持運行,而其他非Daemon程式會受控制台操作影響,並在控制台退出時被強行退出。因此網路服務程式絕大多數都是以Daemon方式運行。

可以在程式初始化時加入以下語句,則程式將以Daemon方式運行:/**//* 產生一個新的進程並將原來的主進程退出 */  
if(fork()) exit(0);   
/**//* 關閉 stdin, stdout, stderr 等控制台控制代碼 */  
for (n = 0; n<3; n++) close(n);   
/**//* 將 stdin, stdout和stderr均指向/dev/null */  
open("/dev/null", O_RDONLY);   
dup2(0,1);   
dup2(0,2);   
/**//* 設定tty的I/O屬性 */  
if((n=open("/dev/tty",O_RDWR)) > 0) ...{   
ioctl(n, TIOCNOTTY, 0) ;   
close(n);   
}   
/**//* 建立一個新的session,使當前進程成為一個process greoup的leader */  
setsid();   
/**//* 產生一個新的進程並將剛才產生的進程退出,這個新的進程已經以daemon方式運行了 */  
if(fork()) exit(0);   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.