產生守護進程的方法

1、在父進程下產生子進程。

2、關閉父進程,使子進程成爲一個新會話的頭進程和新進程組的頭進程,從而與父進程所在的進程組和會話脫鉤。

3、忽略SIGHUP信號,防止之後新產生的進程被關閉。

4、在子進程下(後面我們稱這個子進程爲父進程SP)再產生子進程,使之成爲守護進程。這樣做的原因是如果這時開啓一個控制終端,父進程SP會自動獲取控制終端,因爲父進程SP爲會話頭進程,會話頭進程會自動獲取控制終端。從而不能成爲守護進程。

5、關閉父進程SP。

6、改變工作目錄爲根目錄,這樣做的原因是如果守護進程在一個文件系統中產生,這個文件系統在需要卸載的時候就無法卸載

7、關閉本守護進程繼承來的打開着的描述符。

8、打開/dev/null作爲本守護進程的標準輸入,輸出,錯誤輸出,這樣做的原因是保證這三個常用描述符(爲0,1,2)爲打開着的,以防被其他命令佔據這三個描述符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章