歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Fedora 15 systemd 秘籍表

Fedora 15 systemd 秘籍表

日期:2017/2/28 16:14:10   编辑:Linux教程

隨著 Fedora 15 的發布,systemd 正式開始了替代 SysVinit 的步伐。通過本文的秘籍表,可助您輕松由 SysVinit 過渡到 systemd 。

該文檔目的在於幫助系統管理員了解 systemd 中可以取代原先 sysvinit 工作流程的命令。如果想要了解 systemd 的一般信息,參閱 systemd。

注意 ‘service’ 和 ‘chkconfig’ 命令在 systemd 環境下依然可用,該教程目的在於告訴您如何使用原生 systemctl 替代品。

sysvinit 命令 systemd 命令 備注 service frobozz start systemctl start frobozz.service 用來啟動一個服務 (並不會重啟現有的) service frobozz stop systemctl stop frobozz.service 用來停止一個服務 (並不會重啟現有的)。 service frobozz restart systemctl restart frobozz.service 用來停止並啟動一個服務。 service frobozz reload systemctl reload frobozz.service 當支持時,重新裝載配置文件而不中斷等待操作。 service frobozz condrestart systemctl condrestart frobozz.service 如果服務正在運行那麼重啟它。 service frobozz status systemctl status frobozz.service 匯報服務是否正在運行。 ls /etc/rc.d/init.d/ ls /lib/systemd/system/*.service /etc/systemd/system/*.service 用來列出可以啟動或停止的服務列表。 chkconfig frobozz on systemctl enable frobozz.service 在下次啟動時或滿足其他觸發條件時設置服務為啟用 chkconfig frobozz off systemctl disable frobozz.service 在下次啟動時或滿足其他觸發條件時設置服務為禁用 chkconfig frobozz systemctl is-enabled frobozz.service 用來檢查一個服務在當前環境下被配置為啟用還是禁用。 chkconfig frobozz –list ls /etc/systemd/system/*.wants/frobozz.service 用來列出該服務在哪些運行級別下啟用和禁用。 chkconfig frobozz –add 不需要,沒有等效命令。

注意以上列出的所有 /sbin/service 和 /sbin/chkconfig 在 systemd 環境下依然可以工作,並且在必要的情況下將會被翻譯成原生的等效命令。唯一的例外是 chkconfig –list。

額外的命令:

  • 在 SysVinit,服務可以任意定義命令。例如 service iptables panicservice httpd graceful。原生 systemd 服務不具有此能力。
  • 當編寫原生 systemd 服務配置時,任何以這種方式定義了額外命令的服務需要定義其他、特定於服務的方式來完成此項任務。
  • 查閱軟件包自身的發布日志來了解可能進行類似操作的服務。

運行級別/目標:

Systemd 引入一個概念 目標,它的用途和運行級別類似,但是運行起來有一些不同。每一個目標使用名稱而不是數字命名的,服務於一個特定的目的。which serve a similar purpose as runlevels but act a little different. Each target is named instead of numbered and is intended to serve a specific purpose. 一些 目標 通過繼承另一個 目標 然後添加其他額外服務來實現。也有一些 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)。

sysvinit 運行級別 systemd 目標 備注 0 runlevel0.target, poweroff.target 關閉系統。 1, s, single runlevel1.target, rescue.target 單用戶模式。 2, 4 runlevel2.target, runlevel4.target, multi-user.target 用戶定義/域特定運行級別。默認等同於 3。 3 runlevel3.target, multi-user.target 多用戶,非圖形化。用戶可以通過多個控制台或網絡登錄。 5 runlevel5.target, graphical.target 多用戶,圖形化。通常為所有運行級別 3 的服務外加圖形化登錄。 6 runlevel6.target, reboot.target 重啟 emergency emergency.target 緊急 Shell

改變運行級別:

sysvinit 命令 systemd 命令 備注 telinit 3 systemctl isolate multi-user.target (OR systemctl isolate runlevel3.target OR telinit 3) 改變至多用戶運行級別。 sed s/^id:.*:initdefault:/id:3:initdefault:/ ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target 設置在下一次啟動時使用多用戶運行級別。

Copyright © Linux教程網 All Rights Reserved