執行乙個服務(例如
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.接收外界指令,比如重啟 ...