UNIX(进程间通信):05---守护进程
生活随笔
收集整理的這篇文章主要介紹了
UNIX(进程间通信):05---守护进程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
守護進程是在后臺運行不受終端控制的進程(如輸入、輸出等),一般的網絡服務都是以守護進程的方式運行。守護進程脫離終端的主要原因有兩點:(1)用來啟動守護進程的終端在啟動守護進程之后,需要執行其他任務。(2)(如其他用戶登錄該終端后,以前的守護進程的錯誤信息不應出現)由終端上的一些鍵所產生的信號(如中斷信號),不應對以前從該終端上啟動的任何守護進程造成影響。要注意守護進程與后臺運行程序(即加&啟動的程序)的區別。
創建守護進程的過程:
fork子進程, 父進程退出, 所有工作在子進程中進行形式上脫離了控制終端; 必須
子進程創建新會話, setsid函數, 使子進程完全獨立出來, 脫離控制; 必須
改變當前目錄為根目錄, chdir()函數, 防止占用可卸載的文件系統, 也可以換成其它路徑, 為了增強程序的健壯性; 非必須
重設文件權限掩碼, umask()函數, 防止繼承的文件創建屏蔽字拒絕某些權限, 增加守護進程靈活性; 非必須
關閉文件描述符, 繼承的打開文件不會用到, 浪費系統資源, 無法卸載, close(0), close(1), close(2); 非必須
執行核心工作
守護進程退出處理程序模型;
總結
以上是生活随笔為你收集整理的UNIX(进程间通信):05---守护进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LRU介绍和实现
- 下一篇: leetcode240. 搜索二维矩阵