日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux系统编程---11(会话,守护进程,创建守护进程)

發(fā)布時(shí)間:2023/11/30 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统编程---11(会话,守护进程,创建守护进程) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

會(huì)話

創(chuàng)建會(huì)話

創(chuàng)建一個(gè)會(huì)話需要注意以下6點(diǎn)注意事項(xiàng)

  • 調(diào)用進(jìn)程不能是進(jìn)程組組長,該進(jìn)程變成新會(huì)話首進(jìn)程
  • 該進(jìn)程成為一個(gè)新進(jìn)程組的組長進(jìn)程
  • 需要root權(quán)限(nbuntu不需要)
  • 新會(huì)話丟棄原有的控制終端,該會(huì)話沒有控制終端
  • 該調(diào)用進(jìn)程是組長進(jìn)程,則出錯(cuò)返回
  • 建立新會(huì)話時(shí),先調(diào)用fork,父進(jìn)程終止,子進(jìn)程調(diào)用setsid
  • getsid 函數(shù)

    獲取進(jìn)程所屬的會(huì)話ID
    pid_t getsid(pid_t pid); 成功:返回調(diào)用進(jìn)程的會(huì)話 ID;失敗:-1,設(shè)置 errno
    pid 為 0 表示察看當(dāng)前進(jìn)程 session ID
    ps ajx 命令查看系統(tǒng)中的進(jìn)程。

  • 參數(shù) a 表示不僅列當(dāng)前用戶的進(jìn)程,也列出所有其他用戶的進(jìn)程,
  • 參數(shù) x 表示 不僅列有控制終端的進(jìn)程,也列出所有無控制終端的進(jìn)程,
  • 參數(shù) j 表示列出與作業(yè)控制相關(guān)的信息。
    組長進(jìn)程不能成為新會(huì)話首進(jìn)程,新會(huì)話首進(jìn)程必定會(huì)成為組長進(jìn)程。
  • setsid 函數(shù)

    創(chuàng)建一個(gè)會(huì)話,并以自己的 ID 設(shè)置進(jìn)程組 ID,同時(shí)也是新會(huì)話的 ID。
    pid_t setsid(void); 成功:返回調(diào)用進(jìn)程的會(huì)話 ID;失敗:-1,設(shè)置 errno
    調(diào)用了 setsid 函數(shù)的進(jìn)程,既是新的會(huì)長,也是新的組長。

    練習(xí): fork 一個(gè)子進(jìn)程,并使其創(chuàng)建一個(gè)新會(huì)話。查看進(jìn)程組 ID、會(huì)話 ID 前后變化
    #include<stdlib.h> #include<unistd.h>int main(void) {pid_t pid;if((pid = fork()< 0)){perror("fork");exit(1);}else if(pid == 0){ printf("child process PID is %d\n",getpid());printf("Group ID of child is %d\n",getpgid(0));printf("Session ID of child is %d\n",getsid(0));sleep(10);setsid(); //子進(jìn)程非組長進(jìn)程,故其成為新會(huì)話首進(jìn)程,且成為組長進(jìn)程。該進(jìn) 程id即為會(huì)話進(jìn)程printf("Changed:\n");printf("child process PID is %d\n",getpid());printf("Group ID of child is %d\n",getpgid(0));printf("Session ID of child is %d\n",getsid(0));sleep(20);exit(0); } return 0; }

    結(jié)果:

    守護(hù)進(jìn)程

  • Daemon(精靈)進(jìn)程,是 Linux 中的后臺服務(wù)進(jìn)程,通常獨(dú)立于控制終端并且周期性地執(zhí)行某種任務(wù)或等待處理 某些發(fā)生的事件。一般采用以 d 結(jié)尾的名字
  • Linux 后臺的一些系統(tǒng)服務(wù)進(jìn)程,沒有控制終端,不能直接和用戶交互。不受用戶登錄、注銷的影響,一直在運(yùn)行著,他們都是守護(hù)進(jìn)程。如:預(yù)讀入緩輸出機(jī)制的實(shí)現(xiàn);ftp 服務(wù)器;nfs 服務(wù)器等。
  • 創(chuàng)建守護(hù)進(jìn)程,最關(guān)鍵的一步是調(diào)用 setsid 函數(shù)創(chuàng)建一個(gè)新的 Session,并成為 SessionLeader。
  • 創(chuàng)建守護(hù)進(jìn)程

  • 創(chuàng)建子進(jìn)程,父進(jìn)程退出
    所有工作在子進(jìn)程中進(jìn)行形式上脫離了控制終端

  • 在子進(jìn)程中創(chuàng)建新會(huì)話
    setsid()函數(shù)
    使子進(jìn)程完全獨(dú)立出來,脫離控制

  • 改變當(dāng)前目錄為根目錄
    chdir()函數(shù)
    防止占用可卸載的文件系統(tǒng)
    也可以換成其它路徑

  • 重設(shè)(指定)文件權(quán)限掩碼
    umask()函數(shù)
    防止繼承的文件創(chuàng)建屏蔽字拒絕某些權(quán)限
    增加守護(hù)進(jìn)程靈活性

  • 將0/1/2重定向/dev/null dup2()關(guān)閉文件描述符
    繼承的打開文件不會(huì)用到,浪費(fèi)系統(tǒng)資源,無法卸載

  • 開始執(zhí)行守護(hù)進(jìn)程核心工作

  • 守護(hù)進(jìn)程退出處理程序模型

    #include<stdio.h>#include<unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h> void mydaemond(void){pid_t pid,sid;int ret;pid = fork();if(pid > 0){ //父進(jìn)程退出return 0;} //創(chuàng)建會(huì)話sid = setsid();ret = chdir("/home/itcast/"); if( ret == -1 ){perror("chdir error");exit(1);} umask(0022);close(STDOUT_FILENO);open("/dev/null",O_RDWR);dup2(0,STDOUT_FILENO);dup2(0,STDERR_FILENO);}int main(void){mydaemond();while(1){}return 0;}
  • 總結(jié)

    以上是生活随笔為你收集整理的Linux系统编程---11(会话,守护进程,创建守护进程)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品欧美激情 | 最新自拍偷拍 | 本站只有精品 | 国产在线成人精品午夜 | 国产精品乱码久久久久 | 成年人看的视频网站 | 啪啪中文字幕 | 久久不射网站 | 大桥未久恸哭の女教师 | a天堂资源在线观看 | 好看的中文字幕av | 毛茸茸free性熟hd | 国产欧美一区二区三区视频在线观看 | 日韩国产中文字幕 | 99蜜桃臀久久久欧美精品网站 | 在线免费观看一级片 | 中出白浆 | 国产精品毛片一区二区在线看 | 人人九九精品 | 女人又爽又黄免费女仆 | 青草视频网 | 麻豆传媒在线观看视频 | 99热精品在线播放 | 欧美v日韩| 91大神在线观看视频 | 日韩免费视频一区二区 | 国产三级理论 | 午夜鲁鲁 | 国产片一区二区 | 中文字幕一区二区在线视频 | 欧美在线观看网站 | 成人av久久 | 天堂一区二区三区四区 | 97国产精品久久 | 精品欧美色视频网站在线观看 | 成人在线一区二区三区 | 18禁肉肉无遮挡无码网站 | 国产超碰在线 | 五月激情五月婷婷 | 97福利网 | 久久久国产一区二区三区 | 丁香六月激情 | 国产一区二区麻豆 | 永久在线免费观看 | 日韩一区二区三区在线视频 | 国产精品1234区 | 免费观看一级视频 | 欧美一区二区三区婷婷 | 就爱啪啪网 | 四虎视频在线 | 三级av免费看 | h网站免费在线观看 | 免费黄色片子 | 在线免费观看网站入口在哪 | 色偷偷资源网 | 欧美四区 | 中文字幕69页 | 97欧美视频 | 黄免费在线观看 | 韩国女主播av | 中文字幕在线欧美 | 狠狠做深爱婷婷综合一区 | 免费久久视频 | 日韩人妻一区二区三区蜜桃 | 亚洲最新av网址 | 香蕉视频在线视频 | 四虎影库永久在线 | www色亚洲 | 欧美污视频在线观看 | 少妇做爰免费理伦电影 | 中国在线观看片免费 | 亚洲欧美日韩色图 | 美女网站视频在线观看 | 久久综合91 | 午夜精品福利电影 | 亚洲免费看片 | 波多野结衣一区二区在线 | 欧洲av无码放荡人妇网站 | 亚洲精品天堂在线 | 亚欧美日韩 | xxxxx18日本| 野外一级片 | 天天干天天摸 | 欧美高清在线 | 日韩区在线 | www免费视频 | 亚洲熟女乱综合一区二区三区 | 免费不卡av| 黄色大片av | 成人久久久精品乱码一区二区三区 | www.久久爱 | 午夜黄色网 | 青青草视频在线看 | 黄色一级片免费播放 | 丰满少妇被猛烈进入一区二区 | 超碰日日夜夜 | 色撸撸在线观看 | 亚洲成人av综合 | 亚洲少妇18p |