亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Unix守護(hù)進(jìn)程的創(chuàng)建示例

系統(tǒng) 2123 0
      
        《Unix環(huán)境高級編程》初始化一個守護(hù)進(jìn)程的調(diào)用,cmd可為守護(hù)進(jìn)程名。
      
    
      ?
    
      
        void
      
       daemonize(
      
        const
      
      
        char
      
       *cmd)

{

	
      
        int
      
       			i, fd0, fd1, fd2;

	pid_t			pid;

	
      
        struct
      
       rlimit 		r1;

	
      
        struct
      
       sigaction 	sa;

        
    
              /* 設(shè)置文件模式創(chuàng)建屏蔽字為0,因為繼承得來的文件模式創(chuàng)建屏蔽字可能會拒絕設(shè)置某些權(quán)限。 */

	umask(0);


    
              /* 獲取最大文件描述符。 */

	
      
        if
      
       (getrlimit(RLIMIT_NOFILE, &r1) < 0) {

		err_sys("
      
        %s: In demonize(), can't get file limit
      
      ", cmd);

	}


    
              /* 
    
              *  父進(jìn)程退出,第一個子進(jìn)程繼承了父進(jìn)程的進(jìn)程組ID,但該子進(jìn)程有新的進(jìn)程ID,
    
              *  這就保證了該子進(jìn)程不是進(jìn)程組的組長進(jìn)程。為setsid準(zhǔn)備了條件(調(diào)用setsid的進(jìn)程
    
              *  不能是進(jìn)程組的組長進(jìn)程)。
    
              */

	
      
        if
      
       ((pid = fork()) < 0) {

		err_sys("
      
        %s: In demonize(), can't fork
      
      ", cmd);

	} 
      
        else
      
      
        if
      
       (pid != 0) {

		
      
        exit
      
      (0);

	}
    
    
              /* 
    
              *  創(chuàng)建新會話,使第一個子進(jìn)程即當(dāng)前進(jìn)程(因為父進(jìn)程已退出)成為新會話的首進(jìn)程。
    
              *  也使第一個子進(jìn)程成為新進(jìn)程組的組長進(jìn)程,
      
        沒有控制終端
      
              */

	setsid();


    
              /* 
    
              *  確保將來的操作不分配終端(主要針對UNIX系統(tǒng)V派生的系統(tǒng),當(dāng)會話首進(jìn)程打開
    
              *  第一個尚未與上一個會話相關(guān)聯(lián)的終端設(shè)備時,UNIX系統(tǒng)V派生的系統(tǒng)會將此作為控制
    
              *  終端分配給此會話。這假定會話首進(jìn)程在調(diào)用open時沒指定O_NOCTTY標(biāo)志。) 
    
              */

	sa.sa_handler = SIG_IGN;

	sigemptyset(&sa.sa_mask);

	sa.sa_flags = 0;

	
      
        if
      
       (sigaction(SIGHUP, &sa, NULL) < 0) {

		err_sys("
      
        %s:In demonize(), can't ignore SIGHUP
      
      ");

	}

	
      
        if
      
       ((pid = fork()) < 0) {

		err_sys("
      
        %s:In demonize(), sencond can't fork
      
      ", cmd);

	} 
      
        else
      
      
        if
      
       (pid != 0) {

		
      
        exit
      
      (0);

	}


    
              /* 改變工作目錄為根目錄 */

	
      
        if
      
       (chdir("
      
        /
      
      ") < 0) {

		err_sys("
      
        %s:In demonize(), can't change directory to /
      
      ", cmd)

	}


    
              /* 關(guān)閉所有打開的文件描述符 */

	
      
        if
      
       (r1.rlim_max == RLIM_INFINITY) {

		r1.rlim_max = 1024;

	}

	
      
        for
      
       (i = 0; i < r1.rlim_max; i++) {

		
      
        close
      
      (i);

	}


    
              /* 0    1   2描述符指向/dev/null */

	fd0 = 
      
        open
      
      ("
      
        /dev/null
      
      ", O_RDWR);

	fd1 = dup(0);

	fd2 = dup(1);


    
              /* 初始化系統(tǒng)日志 */

	openlog(cmd, LOG_CONS, LOG_DAEMON);

	
      
        if
      
       (fd0 != 0 || fd1 != 1 || fd2 != 2) {

		syslog(LOG_ERR, "
      
        unexpected file descriptiors %d %d %d
      
      ", fd0, fd1, fd2);

		
      
        exit
      
      (1);

	}

}
    

Unix守護(hù)進(jìn)程的創(chuàng)建示例


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日日噜噜夜夜狠狠视频无 | 国产免费区 | 四虎永久免费网站入口2020 | 四虎影在永久地址在线观看 | 狠狠综合欧美综合欧美色 | 欧美精品久久久久久久影视 | 超级碰碰青草免费视频92 | 久久新网址 | 国产成人精品免费视频网页大全 | 在线a亚洲视频播放在线观看 | 国产综合精品久久亚洲 | 高清在线亚洲精品国产二区 | 欧美videofree高清杂交 | 四虎免费在线观看视频 | 五月婷婷激情网 | 青春禁区视频在线观看动漫版 | 亚洲国产成人久久综合野外 | 国产精品一区不卡 | 天天操综合网 | 天天干夜夜操美女 | 5g影院天天爽 | 曰本毛片va看到爽不卡 | 日日狠狠的日日日日 | 福利姬在线视频国产观看 | 四虎永久免费网站入口2020 | 性欧美www | 欧美一a一片一级一片 | 每日更新国产精品视频 | 日日操日日碰 | 一区二区免费看 | 国产萝控精品福利视频免费 | 老子影院午夜精品欧美视频 | 久草视频大全 | 国产亚洲综合一区二区在线 | 四虎永久精品免费网址大全 | 91视频免费网站 | 亚洲国产成人久久一区二区三区 | 一级大片免费观看 | 四虎精品永久在线网址 | 色天天干 | 久久久久久亚洲精品不卡 |