22 2 2 伺服器守護程序的執行方式

2021-06-16 03:37:42 字數 2001 閱讀 4785

執行乙個服務(例如

ssh)最簡單的辦法就是讓它的守護程序在引導的時候就啟動,然後一直執行,監聽並處理來自客戶機的請求。在剛開始,這樣的設定不會有什麼問題。但隨著服務的增多,這些執行在後台的守護程序會大量消耗系統資源(因為它們一直在執行!),這種消耗常常是沒有必要的。舉例來說,

ssh服務一天內可能只會被乙個管理員用到幾次,這樣,

/etc/sbin/sshd

每天空閒的時間甚至接近

20個小時。

inetd

和xinetd

就是為了解決這種矛盾而誕生的。

inetd

最初由伯克利的專家們開發,這個特殊的守護程序能夠接管其他伺服器守護程序使用的網路埠,在監聽到客戶端請求後啟動相應的守護程序,並為這個伺服器守護程序建立一條通往指定埠的輸入/輸出

通道。inetd

的意義在於,系統上不用同時執行多個「沒有事做」的守護程序。像

ssh、

ftp這樣平時不怎麼用到的服務可以配置為使用

inetd

,這樣它們可以把監聽埠的任務交給

inetd

。當出現一條

ftp連線時,

inetd

就啟動ftp

服務的守護程序;同樣,當管理員有事找

ssh的時候,

inetd

就把sshd

叫醒。inetd

最初在unix

系統上被設計,後來被移植到了

linux

上。現在絕大多數

linux

已經使用了更好的

xinetd

。相對於

inetd

而言,xinetd

有以下優點:

q更多的安全特性;

q針對拒絕服務攻擊的更好的解決方案;

q更強大的日誌管理功能;

q更靈活清晰的配置語法。

儘管如此,一些

linux

系統仍然在使用

inetd

。因此在詳細討論

xinetd

配置之後,本章還會對

inetd

做簡單的介紹。

現在可以把本節的標題補充完整了。伺服器守護程序的執行方式有兩種:一種是隨系統啟動而啟動,並持續在後台監聽連線請求;另一種是借助於

inetd/xinetd

,在需要的時候啟動,完成任務後把監聽任務交還給

inetd/xinetd

。通常,前者被稱為

standalone

模式,後者被稱為

inetd/xinetd

模式。(儘管這種叫法聽上去有點彆扭,但既然大家都這麼說,就隨大流吧。)

並不是所有的伺服器守護程序都支援

inetd

和xinetd

,應用程式必須在編寫的時候就加入對這種模式的支援。一些伺服器守護程序(例如

sshd

、apache2

)既支援

standalone

模式,也能支援

inetd/xinetd

模式。在接下來幾章的伺服器配置中會涉及這兩種執行模式的選擇。

inetd/xinetd

模式的確有很多優點,但事情總不能一概而論。對大型

web站點而言就不應該使用

inetd/xinetd

模式執行

apache

(當前最流行的

web伺服器軟體),因為這些伺服器訪問量巨大,每分每秒都會有新的連線請求,讓

inetd/xinetd

如此頻繁地啟動和關閉

apache

守護程序會非常糟糕。

對於桌面版本的

linux

而言,inetd

和xinetd

通常都需要手動安裝。

ubuntu linux

在其安裝源中提供了

inetd

和xinetd

,而opensuse

只提供了

xinetd

4 5 伺服器上的 Git Git 守護程序

版本 作者日期 備註0.1 loon 2019.3.25 初稿接下來我們將通過 git 協議建立乙個基於守護程序的倉庫。對於快速且無需授權的 git 資料訪問,這是乙個理想之選。請注意,因為其不包含授權服務,任何通過該協議管理的內容將在其網路上公開。如果執行在防火牆之外的伺服器上,它應該只對那些公開...

6月27日 殺死伺服器端守護程序

因為之前的介面1.0是以守護程序的形式部署到伺服器上的,我們如果想把介面2.0的資料也部署到伺服器的80埠,就需要把之前的守護程序殺死,再建立新的守護程序。重啟伺服器 reboot命令重啟伺服器,如果伺服器只有這乙個在跑的 程式沒有其他的重要的程序這樣也可以,不過如果有其他的程序在執行就不可以這樣了...

Nginx伺服器的程序

nginx伺服器的三大類程序 一 主程序 nginx伺服器啟動時執行的主要程序。它的主要功能是與外界通訊和對內部其他程序進行管理,具體來說有以下幾點 1。讀取nginx配置檔案並驗證其有效性和正確性。2.建立 繫結和關閉socket 3.按照配置生成 管理和結束工作程序 4.接收外界指令,比如重啟 ...