方法一:fork方式
1.fork乙個子程序,父程序退出,子程序成為孤兒程序,被init程序接管
2.呼叫setsid建立新的程序會話
3.將當前工作目錄切換到根目錄
4.將標準輸入,輸出,出錯重定向到/dev/null
/*
linux後台程序,fork方式
*/#include
#include
#include
#include
void
daemonize()
else
//呼叫setsid建立新的程序會話
setsid()
;//將當前工作目錄切換到根目錄if(
chdir
("/"
)<0)
//將標準輸入,輸出,出錯重定向到/dev/null
int fd=
open
("/dev/null"
,o_rdwr)
;dup2
(fd,stdin_fileno)
;//複製檔案描述符
dup2
(fd,stdout_fileno)
;dup2
(fd,stderr_fileno)
;return;}
intmain
(int argc,
char
* ar**)
return0;
}
方法二:daemon api方式
/*
linux後台程序,daemon api方式
*/#include
#include
#include
intmain
(int argc,
char
* ar**)
while(1
)}
Linux 啟動mongo db後台服務
文章目錄 1.開啟mongo db後台服務 2.關閉mongo db服務 3.走過的彎路 將mongodb部署在伺服器機子上時mongodb的例項應為後台服務進行的方式執行,而非前台程序,否則遠端會話一關閉mongodb也跟著關閉了。本文介紹mongodb後台服務程序開啟和關閉的操作。使用 fork...
後台服務小點
很多東西本來就存在,只是自己不懂,記錄在此,以便日後複習唄。今天碰到乙個問題就是專案中的靜態頁面是分開的,比如當面部落格頁面,它的頭是單獨的乙個html檔案,而下來的內容又是另外乙個,從專案本身以及在布置到伺服器上都沒有發現拼裝過程,於是好奇之,這是為啥呢,原來nginx早已具有這樣的功能,就是ss...
Mac 後台服務
mac 的後台服務通過launchctl工具實現 也可以使用linux下的crontab 但官方建議使用launchctl。使用launchctl非常簡單,根據需要編寫plist指令碼即可。plist指令碼存放路徑為 library launchdaemons或 library launchagen...