『學了就忘』Linux服務管理 — 75、Linux系統中的服務

繁華似錦Fighting發表於2021-12-13

1、服務的介紹

計算機中的服務是一種能執行指定系統功能的程式,在系統後臺執行。

服務應用程式通常可以在本地和通過網路為使用者提供一些功能,每個程式都有一定的或者說是特定的功能,它所提供的所能實現的未必是你直接需要的,有的是以便支援其他的程式,尤其是低層(接近硬體)的程式。

這些服務可以在計算機啟動時自動啟動,可以暫停和重新啟動,而且不顯示任何使用者介面。

2、Windows系統中的服務

(1)如何檢視Windows系統中的服務。

我們先來看看Windows系統中的服務.

我的電腦 —> 右鍵 —> 點選管理,如下圖所示:

image

在出現的介面中選擇 服務和應用程式 —> 服務,就可以看到Windows系統中已經安裝好的所有服務。

image

Windows系統是圖形化介面,相對於Linux系統,更好理解和觀察一些。

(2)檢視服務的狀態和啟動型別。

我們隨便雙擊一個服務,會出現如下介面:

image

說明:

  • 服務狀態分為:啟動、停止、暫停、恢復。
  • 啟動型別分為:手動、自動、自動(延遲自動)、禁用。

(3)服務的狀態和啟動型別的區別。

1)服務啟動型別

服務啟動型別定義的是你下一次開機的時候,該服務是否會隨著系統一起啟動。也稱為服務的自啟動選項。

  • 兩個自動都是開機後,服務自己就啟動。
  • 手動是Windows系統特有的啟動型別,Linux系統是沒有的,說的是開機之後,該服務不啟動,在之後的系統執行中,有其他程式呼叫該服務,可以不經過管理員同意,該服務會啟動起來。
  • 禁用代表開機之後,該服務不執行。

說明:

  • 手動啟動型別對於Linux系統來說是不可能的,Windows系統之所以這樣設計是為了簡單(與其跟你講道理,還不如我幫你做了),優點是使用起來方便簡單,缺點是很多事情都不是你說的算。
  • Windows系統幫你做了很多的決定,這樣也提升了相應的風險。
  • 而Linux系統設計的核心原則是管理員許可權最大,所有事情都是管理員說的算,管理員如果不同意,這個事情就不能執行。
  • 所以Linux系統中不會有手動啟動型別,這是違背Linux系統設計核心原則的。

2)服務狀態

服務狀態是在當前系統下,該服務當前的狀態。啟動就是該服務現在是執行狀態,未啟動就是未啟動狀態,也稱為服務的啟動選項。

3)總結:

  • Windows系統和Linux系統中的服務,都會有自啟動和啟動兩種啟動方式。
  • 優化伺服器的時候,服務優化是系統優化的重要策略之一。關閉那些用不到的服務,服務啟動的越少,系統資源佔用的就越少,被人攻擊的概率也越小。

3、Linux系統中服務的分類

在Linux系統中,服務的安裝方式不同(rpm包還是原始碼包),該服務的啟動與自啟動方法都是有區別的。

所以在Linux系統中,服務分為兩大類:RPM包安裝的服務原始碼包安裝的服務

其中RPM包安裝的服務又分為:獨立的服務基於xinetd服務(超級守護程式)。

總結如下圖:

image

說明:

通過RPM包安裝的服務我們是用service命令啟動,我們可以把原始碼包安裝的服務的啟動方式修改成和RPM包安裝的服務啟動方式一樣,就是把通過原始碼包安裝的服務的啟動命令加入到service命令當中,進行服務的啟動。

但是不推薦這樣做,原因:

對初學者來說,服務的啟動方法和安裝位置,是區分該服務是通過原始碼包安裝還是通過RPM包安裝的重要方式。如果你進行修改了,你很難分清楚該服務是哪種方式安裝的。

4、獨立的服務和基於xinetd服務的區別

(1)兩者區別。

上邊說了RPM包安裝的服務又分為:獨立的服務基於xinetd服務,這兩者的區別:

  • 獨立的服務:
    就是獨立啟動的意思,這型別的服務可以自行啟動,而不用依賴其他的管理服務。不依賴其他管理服務,那麼當客戶端請求訪問時,獨立的服務直接執行在記憶體中,響應請求更快速。
    Linux中目前大多數服務都是獨立的服務,比如Apache服務,FTP服務,Samba服務等。
  • 基於xinetd的服務:
    這種服務就不能獨立啟動了,而是要依靠管理服務來呼叫這種服務。這個負責管理的服務就是xinetd服務,xinetd服務是系統的超級守護程式,直接執行在系統記憶體中。xinetd服務的作用就是管理不能獨立啟動的服務,當有客戶端請求時,先請求xinetd服務,由xinetd服務去喚醒相對應的服務。當客戶端請求結束後,被喚醒的服務會關閉並釋放資源。這樣做的好處是隻需要持續啟動xinetd服務,而其他基於xinetd的服務只有在需要時才啟動,不會佔用過的的伺服器資源。但是這種服務由於在有客戶端請求時才會被喚醒,所以相應時間相對較慢。

(2)優缺點。

  • 呼叫獨立的服務,直接呼叫記憶體中的服務即可,響應快,效率高。
  • xinetd服務的缺點是,響應速度慢些,響應效率差。
    出現基於xinetd的服務,主要的目的就是節約記憶體,節約資源。

總結(重點):

現在我們的計算機的硬體基礎發展的很快,記憶體或者其他的硬體資源都很充裕,Linux認為基於xinetd的服務作用不大了。xinetd服務的好處越來越小,反而會影響使用效果,所以現在Linux中基於xinetd的服務越來越少,甚至Linux系統預設都沒有安裝xinetd服務。

5、如何檢視一個服務是獨立的服務還是基於xinetd的服務

RPM包方式安裝的服務,如何區分是獨立的服務和基於xinetd的服務。

使用命令chkconfigchkconfig命令是用來更新、查詢、修改不同執行級上的系統服務。

(1)檢視系統中獨立的服務

使用chkconfig --list查詢服務的執行級別。

[root@localhost ~]# chkconfig --list

選項:
  -list:列出所有RPM預設安裝服務的自啟動狀態

注意:查詢的是RPM包的預設安裝服務的自啟動狀態,也就是重啟計算機之後是否啟動配置。並不是現在該服務是否被啟動。

如下圖:

image

我們之前講過的系統執行級別0-60代表關機,6代表重啟等。

這些能看到0-6系統執行級別的服務,都是系統中獨立的服務。

如果需要了解Linux系統執行級別請看這篇文章

(2)檢視系統中基於xinetd的服務

上面說了,現在我們安裝的Linxu系統中,預設是不安裝xinetd服務的,沒有xinetd服務也就沒有基於xinetd的服務。

如果我們要檢視系統中有哪些基於xinetd的服務,我們要先安裝一下xinetd服務。

執行命令:yum -y install xinetd

如下圖所示:

image

然後在執行chkconfig --list命令,就可以看到xinetd服務都有什麼了。

如下圖所示:

image

相關文章