最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux下如何創(chuàng)建守護(hù)進(jìn)程的步驟

 更新時(shí)間:2017年07月17日 09:14:59   作者:xld_hung  
本篇文章主要介紹了linux下如何創(chuàng)建守護(hù)進(jìn)程的步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

這兩天學(xué)習(xí)了linux 守護(hù)進(jìn)程這個(gè)地方知識(shí)點(diǎn)挺多的,而且很重要,所以,今天添加一點(diǎn)小筆記。

1,進(jìn)程的概念:程序的一次動(dòng)態(tài)執(zhí)行過(guò)程。 

進(jìn)程存在于內(nèi)存當(dāng)中,存在著  創(chuàng)建,調(diào)度,執(zhí)行和消亡,進(jìn)程號(hào)是進(jìn)程的唯一標(biāo)志,每一個(gè)進(jìn)程都有自己獨(dú)立的內(nèi)存空間,在32位操作系統(tǒng)中,進(jìn)程擁有0-4G的內(nèi)存空間,其中0-3G屬于用戶,3G-4G屬于內(nèi)核,所以就出現(xiàn)了進(jìn)程的執(zhí)行模式:用戶模式和內(nèi)核模式。 

2,進(jìn)程的類型:交互進(jìn)程,批處理進(jìn)程,守護(hù)進(jìn)程 

3,守護(hù)進(jìn)程:Linux中的后臺(tái)服務(wù)進(jìn)程,daemon進(jìn)程 

4,守護(hù)進(jìn)程的創(chuàng)建步驟: 

(1)創(chuàng)建子進(jìn)程,父進(jìn)程退出。 

經(jīng)過(guò)這步以后,子進(jìn)程就會(huì)成為孤兒進(jìn)程(父進(jìn)程先于子進(jìn)程退出, 此時(shí)的子進(jìn)程,成為孤兒進(jìn)程,會(huì)被init進(jìn)程收養(yǎng))。使用fork()函數(shù),如果返回值大于0,表示為父進(jìn)程,exit(0),父進(jìn)程退出,子進(jìn)程繼續(xù)。 

(2)在子進(jìn)程中創(chuàng)建新會(huì)話,使當(dāng)前進(jìn)程成為新會(huì)話組的組長(zhǎng)。 

使用setsid()函數(shù),如果當(dāng)前進(jìn)程不是進(jìn)程組的組長(zhǎng),則為當(dāng)前進(jìn)程創(chuàng)建一個(gè)新的會(huì)話期,使當(dāng)前進(jìn)程成為這個(gè)會(huì)話組的首進(jìn)程,成為這個(gè)進(jìn)程組的組長(zhǎng)。 

(3)改變當(dāng)前目錄為根目錄。 

由于守護(hù)進(jìn)程在后臺(tái)運(yùn)行,開始于系統(tǒng)開啟,終止于系統(tǒng)關(guān)閉,所以要將其目錄改為系統(tǒng)的根目錄下。進(jìn)程在執(zhí)行時(shí),其文件系統(tǒng)不能被卸下。 

(4)重新設(shè)置文件權(quán)限掩碼。 

進(jìn)程從父進(jìn)程那里繼承了文件創(chuàng)建掩碼,所以可能會(huì)修改守護(hù)進(jìn)程存取權(quán)限位,所以要將文件創(chuàng)建掩碼清除,umask(0); 

(5)關(guān)閉文件描述符。 

子進(jìn)程從父進(jìn)程那里繼承了打開文件描述符。所以使用close即可關(guān)閉。 

在這里要用到getdtablesize()函數(shù)得到這個(gè)進(jìn)程打開文件的數(shù)目。 

按照上面的步驟即可完成守護(hù)進(jìn)程的創(chuàng)建。 

具體的代碼如下,守護(hù)進(jìn)程的功能寫的較為簡(jiǎn)單,往文件里寫東西: 

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

int main()
{   // 1創(chuàng)建子進(jìn)程 ,父進(jìn)程退出
  pid_t pid = fork();
  if(pid<0)
  {
   perror("fork error");
   return -1;
  }
  else if(pid>0)
  {
   exit(0);
  }
  else
  {
    while(1)
    {
      //2 組長(zhǎng)
      setsid();
      // 改變路徑至根目錄
      chdir("/tmp"); 
      //重設(shè)文件掩碼
      umask(0);
      //關(guān)閉文件描述符
      int des=getdtablesize();
      int i=0;
      for(i=0;i<des;i++)
      {
        close(i);
      }
    } 
    char buf[]="bat xld come!\n";
    int fd=open("xld.txt",O_WRONLY|O_CREAT |O_APPEND,0666);
     write(fd,buf,sizeof(buf));
     sleep(2);
    }
  return 0;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • CentOS7?防火墻firewall的操作命令大全

    CentOS7?防火墻firewall的操作命令大全

    大家好,本篇文章主要講的是CentOS7?防火墻(firewall)的操作命令大全,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下哦
    2021-11-11
  • linux下如何查看java進(jìn)程內(nèi)存占用情況

    linux下如何查看java進(jìn)程內(nèi)存占用情況

    這篇文章主要介紹了linux下如何查看java進(jìn)程內(nèi)存占用情況問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Linux查看log日志常用命令

    Linux查看log日志常用命令

    Linux日志存儲(chǔ)在/var/log目錄中,我們可以編寫腳本,來(lái)掃描這些日志,并基于它們的內(nèi)容去自動(dòng)執(zhí)行某些功能,Linux查看日志的命令有多種:?tail、head、cat、more、less、sed等
    2024-06-06
  • linux nand flash驅(qū)動(dòng)編寫

    linux nand flash驅(qū)動(dòng)編寫

    這篇文章主要介紹了linux nand flash驅(qū)動(dòng)編寫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Linux KVM的QCOW2 和 ROW的詳解及區(qū)別介紹

    Linux KVM的QCOW2 和 ROW的詳解及區(qū)別介紹

    這篇文章主要介紹了Linux QCOW2 和 ROW的詳解及區(qū)別介紹的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 學(xué)習(xí)Apache的mod rewrite、access寫法

    學(xué)習(xí)Apache的mod rewrite、access寫法

    Apache的mod_rewrite是提供了強(qiáng)大URL操作的殺手級(jí)的模塊,可以實(shí)現(xiàn)幾乎所有你夢(mèng)想的URL操作類型,其代價(jià)是你必須接受其復(fù)雜性,因?yàn)閙od_rewrite的主要障礙就是初學(xué)者不容易理解和運(yùn)用,即使是Apache專家有時(shí)也會(huì)發(fā)掘出mod_rewrite的新用途。
    2008-09-09
  • 基于ubuntu16 Python3 tensorflow(TensorFlow環(huán)境搭建)

    基于ubuntu16 Python3 tensorflow(TensorFlow環(huán)境搭建)

    這篇文章主要介紹了基于ubuntu16 Python3 tensorflow(TensorFlow環(huán)境搭建),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Linux下修改文件權(quán)限(所有權(quán))

    Linux下修改文件權(quán)限(所有權(quán))

    Linux與Unix是多用戶操作系統(tǒng),所以文件的權(quán)限與所有權(quán)的實(shí)現(xiàn)就顯得很有必要,接下來(lái)通過(guò)本文給大家分享Linux下修改文件權(quán)限,感興趣的朋友一起看看吧
    2019-11-11
  • 新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議

    新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議

    這篇文章主要為大家詳細(xì)介紹了新手學(xué)習(xí)Linux系統(tǒng)的11點(diǎn)建議,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • linux負(fù)載均衡總結(jié)性說(shuō)明 四層負(fù)載和七層負(fù)載有什么區(qū)別

    linux負(fù)載均衡總結(jié)性說(shuō)明 四層負(fù)載和七層負(fù)載有什么區(qū)別

    這篇文章主要為大家詳細(xì)介紹了linux負(fù)載均衡的相關(guān)資料,什么是負(fù)載均衡?四層負(fù)載和七層負(fù)載有什么區(qū)別?具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評(píng)論

交城县| 江永县| 巴林左旗| 临武县| 恩施市| 政和县| 吕梁市| 深水埗区| 彭阳县| 汕头市| 武定县| 商河县| SHOW| 确山县| 恭城| 揭阳市| 右玉县| 英德市| 舞钢市| 理塘县| 来凤县| 伊川县| 林州市| 明溪县| 五莲县| 青神县| 房产| 乾安县| 平安县| 河北区| 仁寿县| 灯塔市| 华安县| 南和县| 平安县| 湖州市| 罗源县| 菏泽市| 聂拉木县| 八宿县| 阆中市|