#include <sys/types.h>
#include <sys/stat.h>
int start_bg()
{
pid_t pid;
// 1.轉變?yōu)楹笈_進程
if ((pid = fork() ) != 0 )
exit( 0);
// 2.離開原先的進程組
setsid();
// 3.禁止再次打開控制終端
if ((pid = fork()) != 0)
{
exit(0);
}
// 4.關閉打開的文件描述符仁讨,避免浪費系統(tǒng)資源
rlimit rlim;
if(getrlimit(RLIMIT_NOFILE,&rlim) == 0)
{
for(int fd=3; fd<=(int)rlim.rlim_cur; fd++)
{
close(fd);
}
}
// 5.改變當前的工作目錄羽莺,避免卸載不了文件系統(tǒng)
if (chdir("/") == -1) exit(1);
// 6.重設文件掩碼,防止某些屬性被父進程屏蔽
umask(0);
setpgrp();
// 7.重定向標準輸入洞豁,輸出盐固,錯誤流荒给,因為守護進程沒有控制終端
if ((fd = open("/dev/null", O_RDWR)) == -1)
{
exit(1);
}
dup2(fd, STDIN_FILENO);
dup2(fd, STDOUT_FILENO);
dup2(fd, STDERR_FILENO);
close(fd);
// 8.屏蔽信號
signal( SIGINT, SIG_IGN);
signal( SIGHUP, SIG_IGN);
signal( SIGQUIT, SIG_IGN);
signal( SIGPIPE, SIG_IGN);
signal( SIGTTOU, SIG_IGN);
signal( SIGTTIN, SIG_IGN);
signal( SIGCHLD, SIG_IGN);
signal( SIGTERM, SIG_IGN);
struct sigaction sig;
sig.sa_handler = SIG_IGN;
sig.sa_flags = 0;
sigemptyset( &sig.sa_mask);
sigaction( SIGHUP,&sig,NULL);
return 0;
}
Linux 后臺執(zhí)行代碼
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來箫荡,“玉大人魁亦,你說我怎么就攤上這事「岬玻” “怎么了吉挣?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長婉弹。 經(jīng)常有香客問我睬魂,道長,這世上最難降的妖魔是什么镀赌? 我笑而不...
- 正文 為了忘掉前任氯哮,我火速辦了婚禮,結果婚禮上商佛,老公的妹妹穿的比我還像新娘喉钢。我一直安慰自己,他們只是感情好良姆,可當我...
- 文/花漫 我一把揭開白布肠虽。 她就那樣靜靜地躺著,像睡著了一般玛追。 火紅的嫁衣襯著肌膚如雪税课。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼击狮,長吁一口氣:“原來是場噩夢啊……” “哼佛析!你這毒婦竟也來了?” 一聲冷哼從身側響起彪蓬,我...
- 正文 年R本政府宣布,位于F島的核電站琐旁,受9級特大地震影響涮阔,放射性物質發(fā)生泄漏。R本人自食惡果不足惜灰殴,卻給世界環(huán)境...
- 文/蒙蒙 一敬特、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧牺陶,春花似錦伟阔、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至狮鸭,卻和暖如春合搅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背怕篷。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 首先匿沛,有同學在后臺問我推送合成自定義語音播放的問題,這篇文章是對上篇文章的補充榛鼎。 閱讀本篇文章可以先瀏覽一下我之前...
- 如何使應用被切到后臺逃呼,應用中的網(wǎng)絡連接仍然接收數(shù)據(jù)并維持存活(像QQ iphone 一樣); 其實按 IOS官方文...
- 這一篇其實是由上一篇引申出來的抡笼。之前說到,勉勉強強實現(xiàn)了 PDF 和 PPT 文件轉圖片黄鳍,但是轉換需要一定的時間推姻,...
- 當有content-available字段的時候拧晕,就可以在后臺做一些事情。 在appdelegate里面會執(zhí)行 在...