什么是守護進程,創建守護進程的步驟是什么?
導讀:IT技術IT技術 可能很多伙伴對于守護進程都很陌生,甚至都不知道守護進程是什么。守護進程是操作系統后臺的一種特殊進程,像Linux系統的大多數服務器都是通過守護進程實現的。今天騰訊電腦技術高手部落電腦技術yy頻道。
可能很多伙伴對于守護進程都很陌生,甚至都不知道守護進程是什么。守護進程是公司網站建設操作系統后臺的一種特殊進程,像Linux系統的大多數服務器都是通過守護進程實現的。今天給大家科普一下什么是守護進程以及linux系統如何創建守護進程。
一、守護進程是什么?
Linux Daemon(守護進程)是運行在后臺的一種特殊進程。它獨立于控制終端并且周期性地執行某種任務或等待處理某些發生的事件。它不需要用戶輸入就能運行而且提供某種服務,不是對整個系統就是對某個用戶程序提供服務。Linux系統的大多數服務器就是通過守護進程實現的。常見的守護進程包括系統日志進程syslogd、 web服務器httpd、郵件服務器sendmail和數據庫服務器mysqld等。
守護進程一般在系統啟動時開始運行,除非強行終止,否則直到系統關機都保持運行。守護進程經常以超級用戶(root)權限運行,因為它們要使用特殊的端口(1-1024)或訪問某些特殊的資源。
一個守護進程的父進程是init進程,因為它真正的父進程在fork出子進程后就先于子進程exit退出了,所以它是一個由init繼承的孤兒進程。守護進程是非交互式程序,沒有控制終端,所以任何輸出,無論是向標準輸出設備stdout還是標準出錯設備stderr的輸出都需要特殊處理。
守護進程的名稱通常以d結尾,比如sshd、xinetd、crond等
二、創建守護進程的步驟
首先我們要了解一些基本概念:
1、進程組 :
每個進程也屬于一個進程組
每個進程主都有一個進程組號,該號等于該進程組組長的PID號 。
一個進程只能為它自己或子進程設置進程組ID號
2、會話期:
會話期(session)是一個或多個進程組的集合。
setsid()函數可以建立一個對話期:
如果,調用setsid的進程不是一個進程組的組長,此函數創建一個新的會話期。
(1)此進程變成該對話期的首進程
(2)此進程變成一個新進程組的組長進程。
(3)此進程沒有控制終端,如果在調用setsid前,該進程有控制終端,那么與該終端的聯系被解除。 如果該進程是一個進程組的組長,此函數返回錯誤。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-06-28 ,文章什么是守護進程,創建守護進程的步驟是什么?主要講述進程,步驟,IT技術網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/it_22242.html