當前位置:首頁 » 操作系統 » linux以守護進程啟動

linux以守護進程啟動

發布時間: 2024-11-02 03:00:55

linux守護進程管理神器-supervisor

supervisor是一款由Python開發的進程管理工具,其核心功能在於通過服務端supervisord管理子進程,提供啟動、關閉、重啟和查看進程狀態的能力。

這款工具的獨特之處在於能夠通過Web界面直觀地監控並控制進程狀態,用戶可以在Web頁面上輕松地啟動或停止服務。為了更直觀地理解supervisor的作用,下圖展示了如何通過它對伺服器上的一些agent進行管理,以及對一些web服務進程進行監控,同時查看了簡單的啟動日誌。

安裝方面,由於supervisor是用Python編寫的,因此使用pip工具安裝最為便捷。對於CentOS系統,用戶也可以選擇通過yum來安裝,但推薦使用pip以獲取最新的版本和最佳兼容性。

對於希望確保服務在伺服器異常宕機後能夠快速恢復的用戶,開啟開機啟動功能尤為重要。雖然通過pip或yum安裝能夠實現基礎的安裝流程,但為了實現開機啟動,還需要進行額外的配置步驟。

配置過程包括服務端配置和子進程配置文件的創建與調整。服務端配置文件通常包含了一些默認設置,例如,web服務默認狀態為關閉。用戶可以根據實際需求,如內網服務的使用場景,決定是否開啟web服務。子進程配置文件則在目錄/etc/supervisord.d/*.ini中存放,這部分配置文件尤為關鍵,直接決定了子進程的行為和屬性。

以node_exporter為例,其配置文件可以展示如何添加環境變數以及調整特定參數。用戶還可以根據需要訪問supervisord.org網站,查閱更多詳細配置選項和最佳實踐。

在實際使用中,掌握命令操作是高效管理進程的關鍵。用戶可以通過執行`--help`命令了解特定命令的幫助文檔,從而快速獲取所需信息。對於日常操作而言,`supervisorctl`命令是執行進程式控制制操作的常用工具。

為了簡化管理流程,用戶可以將`supervisorctl`命令直接輸入終端,進入互動式控制界面,從而直接執行各種管理命令,如啟動、停止、重啟進程,或查看進程狀態等。

㈡ 如何以守護進程在linux系統下執行

編寫守護進程程序的要點:
(1)讓程序在後台執行。方法是調用fork()產生一個子進程,然後使父進程退出。
(2)調用setsid()創建一個新對話期。控制終端、登錄會話和進程組通常是從父進程繼承下來的,守護進程要擺脫它們,不受它們的影響,方法是調用setsid()使進程成為一個會話組長。setsid()調用成功後,進程成為新的會話組長和進程組長,並與原來的登錄會話、進程組和控制終端脫離。
(3)禁止進程重新打開控制終端。經過以上步驟,進程已經成為一個無終端的會話組長,但是它可以重新申請打開一個終端。為了避免這種情況發生,可以通過使進程不再是會話組長來實現。再一次通過fork()創建新的子進程,使調用fork的進程退出。
(4)關閉不再需要的文件描述符。子進程從父進程繼承打開的文件描述符。如不關閉,將會浪費系統資源,造成進程所在的文件系統無法卸下以及引起無法預料的錯誤。首先獲得最高文件描述符值,然後用一個循環程序,關閉0到最高文件描述符值的所有文件描述符。
(5)將當前目錄更改為根目錄。
(6)子進程從父進程繼承的文件創建屏蔽字可能會拒絕某些許可權。為防止這一點,使用unmask(0)將屏蔽字清零。
(7)處理SIGCHLD信號。對於伺服器進程,在請求到來時往往生成子進程處理請求。如果父進程不等待子進程結束,子進程將成為僵屍進程(zombie),從而佔用系統資源。如果父進程等待子進程結束,將增加父進程的負擔,影響伺服器進程的並發性能。在Linux下可以簡單地將SIGCHLD信號的操作設為SIG_IGN。這樣,子進程結束時不會產生僵屍進程。

熱點內容
冒險島服務端源碼 發布:2024-11-23 02:43:34 瀏覽:796
我的世界基岩版開服伺服器 發布:2024-11-23 02:40:45 瀏覽:41
超星訪問書 發布:2024-11-23 02:23:49 瀏覽:793
內存演算法 發布:2024-11-23 02:23:03 瀏覽:118
自由落體c語言 發布:2024-11-23 02:09:25 瀏覽:682
csqlitelinux 發布:2024-11-23 01:51:15 瀏覽:615
c語言中提示有沒有安裝編譯器 發布:2024-11-23 01:45:28 瀏覽:350
雲上壓縮 發布:2024-11-23 01:39:56 瀏覽:820
電腦總是伺服器錯誤 發布:2024-11-23 01:39:45 瀏覽:545
伺服器卡班進不去怎麼辦 發布:2024-11-23 01:39:09 瀏覽:226