歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Fedora 17中systemd系統和服務管理器

Fedora 17中systemd系統和服務管理器

日期:2017/2/28 14:36:55   编辑:Linux教程

systemd 是 Linux 下一個與 SysV 初始化腳本兼容的系統和服務管理器,使用 socket 和 D-Bus 來開啟服務,提供基於守護進程的按需啟動策略,可以用來管理啟動的服務、調整運行級別、管理日志等等。

為了加速整個系統啟動和並行啟動更多的進程,systemd 在實際啟動守護進程之前創建監聽 socket ,然後傳遞 socket 給守護進程。在系統初始化時,首先為所有守護進程創建 socket ,然後再啟動所有的守護進程。如果一個服務因為需要另一個服務的支持而沒有完全啟動,而這個連接可能正在提供服務的隊列中排隊,那麼這個客戶端進程在這次請求中就處於阻塞狀態。不過只會有這一個客戶端進程會被阻塞,而且僅是在這一次請求中被阻塞。服務間的依賴關系也不再需要通過配置來實現真正的並行啟動(因為一次開啟了所有的 socket ,如果一個服務需要其他的服務,它顯然可以連接到相應的 socket)。

D-Bus 激活策略啟動服務:通過使用總線激活策略,服務可以在接入時馬上啟動。同時,總線激活策略使得系統可以用微小的消耗實現 D-Bus 服務的提供者與消費者的同步開啟請求。(同時開啟多個服務,如果一個比總線激活策略中其他服務快就在 D-Bus 中排隊其請求,直到其他管理確定自己的服務信息為止)。

systemctl是最主要的工具。它融合 service 和 chkconfig 的功能於一體。你可以使用它永久性或只在當前會話中啟用/禁用服務。下面的表格列出了systemd相關命令,及其相應於的sysVinit下的等價命令。

/sbin/service 和 /sbin/chkconfig 在 systemd 環境下依然可以工作,並且在必要的情況下將會被翻譯成原生的等效命令。

Systemd 引入一個概念:目標。它的用途和運行級別類似,但是運行起來有一些不同。每一個目標使用名稱而不是數字命名的,服務於一個特定的目的。一些目標通過繼承另一個 目標然後添加其他額外服務來實現。也有一些 systemd 目標 模仿通常的 sysvinit 運行級別,於是您依然可以通過熟悉的telinit RUNLEVEL 來切換 目標。在純淨 Fedora 系統上運行級別 0, 1, 3, 5, 和 6; 與特定的 目標 之間存在 1:1 的映射關系。遺憾的是,對於用戶自定義運行級別 2 和 4 沒法實現類似的轉換。如果您使用了這些運行級別,建議您用/etc/systemd/system/$YOURTARGET 的方式創建一個新的 systemd 目標,並以一個已有的運行級別作為基礎 (您可以查看/lib/systemd/system/graphical.target 作為例子),創建一個目錄/etc/systemd/system/$YOURTARGET.wants,然後符號鏈接您想要啟用的額外服務到該目錄下 (符號鏈接的服務位於/lib/systemd/system)。

更多Fedora相關信息見Fedora 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=5

Copyright © Linux教程網 All Rights Reserved