亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

守護進程

守護進程(daemon)是一類在后臺運行的特殊進程,用于執行特定的系統任務。很多守護進程在系統引導的時候啟動,并且一直運行直到系統關閉。另一些只在需要的時候才啟動,完成任務后就自動結束。

用戶使守護進程獨立于所有終端是因為,在守護進程從一個終端啟動的情況下,這同一個終端可能被其他的用戶使用。例如,用戶從一個終端啟動守護進程后退出,然后另外一個人也登錄到這個終端。用戶不希望后者在使用該終端的過程中,接收到守護進程的任何錯誤信息。同樣,由終端鍵人的任何信號(例如中斷信號)也不應該影響先前在該終端啟動的任何守護進程的運行。雖然讓服務器后臺運行很容易(只要shell命令行以&結尾即可),但用戶還應該做些工作,讓程序本身能夠自動進入后臺,且不依賴于任何終端。

創建步驟

  • 調用fork(),創建新進程,它會是將來的守護進程.
  • 在父進程中調用exit,保證子進程不是父進程,成為孤兒進程
  • 調用setsid()創建新的會話區,讓進程擺脫原會話的控制、讓進程擺脫原進程組的控制和讓進程擺脫原控制終端的控制。(如果不進行這步,孤兒進程將會在控制終端退出后退出)
  • 將當前目錄改成根目錄(如果把當前目錄作為守護進程的目錄,當前目錄不能被卸載他作為守護進程的工作目錄)
  • 將標準輸入,標注輸出,標準錯誤重定向到/dev/null.(否則會在控制終端中輸出)
  • 重設文件創建掩碼,文件創建掩碼是指屏蔽掉文件創建時的對應位。由于使用fork函數新建的子進程繼承了父進程的文件創建掩碼,這就給該子進程使用文件帶來了諸多的麻煩。因此,把文件創建掩碼設置為0,可以大大增強該守護進程的靈活性。設置文件創建掩碼的函數是umask,通常的使用方法為umask(0)。
  • 關閉文件描述符,用fork新建的子進程會從父進程那里繼承一些已經打開了的文件。這些被打開的文件可能永遠不會被守護進程讀或寫,但它們一樣消耗系統資源,可能導致所在的文件系統無法卸載。

特點

首先,守護進程最重要的特性是后臺運行。其次,守護進程必須與其運行前的環境隔離開來。這些環境包括未關閉的文件描述符、控制終端、會話和進程組、工作目錄以及文件創建掩碼等。這些環境通常是守護進程從執行它的父進程(特別是shell)繼承下來的。最后,守護進程的啟動方式有其特殊之處。它可以在Linux系統啟動時從啟動腳本/etc/rc.d中啟動,也可以由作業控制進程crond啟動,還可以由用戶終端(通常是shell)執行。

除這些以外,守護進程與普通進程基本上沒有什么區別。因此,編寫守護進樣實際上是把一個普通進程按照上述的守護進程的特性改造成為守護進程。

分類

按照服務類型分為如下幾個。

  • 系統守護進程:syslogd、login、crond、at等。
  • 網絡守護進程:sendmail、httpd、xinetd、等。
  • 獨立啟動的守護進程:httpd、named、xinetd等。
  • 被動守護進程(由xinetd啟動):telnet、finger、ktalk等。
主站蜘蛛池模板: 中文字幕在线天堂 | 年轻母亲2在线 | 国产亚洲精品成人 | 日韩成人片 | 国产91久久精品一区二区 | 国产一区二区久久 | 韩日毛片| 色噜噜狠狠一区二区三区果冻av | 亚洲一级毛片免费看 | 欧美黑人一级毛片 | 又粗又爽又猛高潮的在线视频 | 黄色软件免费在线下载 | 欧美黑人在线 | 国产免费观看视频 | 毛片免费电影 | av影院在线 | 免费一级特黄特色毛片久久看 | 国产精品激情偷乱一区二区∴ | 日日干综合 | 伊人网在线视频观看 | 久久免费成人 | 日本欧美在线 | 天天摸天天操 | 一区二区三区播放 | 蜜臀久久99精品久久久无需会员 | 91极品尤物在线播放国产 | 欧美视频在线一区二区三区 | 国产精品视频网站 | 久久久久久免费毛片精品 | 国产又色又爽又黄又免费 | 狠狠色噜噜狠狠狠狠2018 | 一级毛片免费毛片一级毛片免费 | 欧洲一区在线 | 一级黄毛片 | 躁躁躁日日躁2020麻豆 | 一区二区三区在线电影 | 成人在线毛片 | 中文字幕网在线 | 亚洲天堂网在线观看视频 | 黄色软件哪里下载 | 欧美成人亚洲 |