色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

Hi,歡迎來到嵌入式培訓高端品牌 - 華清遠見教育科技集團<北京總部官網>,專注嵌入式工程師培養15年!
當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > 說說守護進程
說說守護進程
時間:2016-12-30作者:華清遠見

守護進程又稱精靈進程(daemon),一般在系統啟動時開始,而在系統關閉時終止。沒有控制終端,運行在后臺。在linux系統中有很多這類進程。

下面說一下如何創建一個守護進程。

(1) 使用umask修改文件的屏蔽字,為文件賦予跟多的權限,因為繼承來的文件可能某些權限被屏蔽,從而失去某些功能,如讀寫。
        (2) 調用fork函數創建一個子進程,而父進程退出。
        (3) 調用settid創建一個新會話,當前進程為會話組長,并且關閉控制終端。
        (4) 修改進程工作目錄為根目錄,chdir(“/”).
        (5) 關閉不需要的從父進程繼承過來的文件描述符。
        (6) 打開/dev/null,null也稱黑洞設備,就是寫入或讀出什么都沒有效果。代開這個設備是文件具有0,1,2三個文件描述符,但是對標準輸入,標準輸出,標準出錯的操作都沒有效果。這部分內容不是必須的。

下面使用一個例程說一下這個過程。

#include <stdio.h>
        #include <unistd.h>
        #include <sys/types.h>
        #include <stdlib.h>
        #include <sys/resource.h>

int main()
        {

        pid_t pid;
                struct rlimit r;
                int i;

//XXX step 1:set umask
                umask(0);

//XXX setp 2:fork
                if((pid = fork()) < 0)
                {
                        perror("fork");
                        exit(0);
                }
                else if(pid != 0)
                {
                        exit(0);
                }

//XXX step 3:setsid
                setsid();

//XXX step 4:chdir
                chdir("/");

//XXX step 5:close all open file descriptors
                if(r.rlim_max == RLIM_INFINITY)
                {
                        r.rlim_max = 1024;
                } 
                for(i = 0; i < r.rlim_max; i++)
                {
                        close(i);
                }

                while(1)
                {

        }
                return 0;
        }

上面便是一個守護進程的創建過程,可是一些書或網絡上寫守護進程,會在第三步和第四步之間添加這樣一點代碼。

        if((pid = fork()) < 0)
                {
                        perror("fork");
                        exit(0);
                }
                else if(pid != 0)
                {
                        exit(0);
                }

很多學生就會問,為什么要創建兩次進程呢,這是因為第三步結束后,進程創建了一個新的會話組,并成為會話組長,而會話組長可能獲得控制終端,如果獲得了控制終端那么或這個進程就不是守護進程了。所以添加了這幾句代碼,讓進程失去會話組長的身份,從而沒有獲得控制終端的權限。

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
主站蜘蛛池模板: 成人精品视频一区二区 | 一边下奶一边吃面膜视频讲解 | 欧美牲交videossexeso | 亚洲色大成网站WWW永久一区 | 国产AV无码专区亚洲AV潘金链 | 欧美激情一区二区三区高清视频 | 女教师の爆乳bd在线观看 | 亚洲欧美精品伊人久久 | 亚洲AV无码成H人动漫网站 | 欧美一级毛片久久99精品蜜桃 | 色综合伊人丁香五月桃花婷婷 | 国产男女嘿咻视频在线观看 | 边摸边吃奶边做爽动态 | 中文字幕在线免费观看 | 欧洲精品码一区二区三区 | 色香蕉色香蕉在线视频 | 扒开末成年粉嫩的小缝图片 | 国产午夜福利在线观看红一片 | 国产AV无码精品色午夜 | 无码免费h成年动漫在线观看 | 亚洲精品无码久久毛片波多野吉衣 | 国产精品久久久久不卡绿巨人 | 日韩av无码一区二区三区不卡毛片 | 国产呻吟久久 | 中国黄色免费看 | 麻豆一区产品精品蜜桃的广告语 | 人妻被按摩到潮喷无码日本 | 久久www免费人成_看片中文 | 亚洲中文字幕av每天更新 | 中文无码亚洲精品字幕 | 日本在线观看视频 | 人妻少妇邻居少妇好多水在线 | 爆乳2把你榨干哦 | 亚洲av综合av一区 | 一性一交一伦一片A片庆乱码 | 四虎最新地址 | 成人做爰A片免费看视频暗夜 | 无码人妻丰满熟妇区毛片18 | 在线观看中文视频 | 被强行灌满精子的少妇 | 2021在线不卡国产麻豆 |