使用Systemd在Linux系統上管理服務,運行級別和日誌

Systemd不僅是服務管理器,還是Linux的系統管理器。 它被設計為與SysV init腳本向後兼容,並被Debian 8 +,Ubuntu 15.04 +,Fedora,Redhat 7 + / CentOS 7 +,Arch Linux,OpenSUSE等許多流行的Linux發行版使用。 因此,了解如何使用systemd將非常有幫助。

本教程向您展示一些基本命令,這些命令對於管理服務,運行級別和日誌非常有用。 首先,您可能想知道Linux發行版上的systemd版本,然後運行

systemd --version

要麼

systemctl --version

管理服務

Systemd可以幫助您啟動,停止,重新啟動服務,還可以在啟動時自動啟動服務。

要列出活動的系統服務,請運行

systemctl list-units --type service

檢查特定服務的狀態,例如SSH守護程序。

systemctl status ssh

要啟動服務,請使用 start 子命令:

sudo systemctl start ssh

檢查它是否處於活動狀態(正在運行)

systemctl is-active ssh

啟用服務以在啟動時自動啟動

sudo systemctl enable ssh

檢查是否啟用

systemctl is-enabled ssh

阻止服務在引導時啟動

sudo systemctl disable ssh

停止服務

sudo systemctl stop ssh

為防止服務無法正常啟動,請使用 mask 子命令

sudo systemctl mask ssh

被屏蔽的服務不能以 systemctl start 命令,直到它被屏蔽為止。

sudo systemctl unmask ssh

管理運行級別

運行級別的概念已由systemd中的目標代替。 的 multi-user.target 相當於運行級別3, graphical.target 等效於運行級別5。您仍然可以使用runlevel命令顯示當前運行級別。

runlevel

使用以下命令檢查默認目標的狀態,該默認目標通常是圖形目標(運行級別5)。

systemctl status default.target

systemd默認引導目標

你用 systemctl isolate 命令更改目標。 例如,更改為multi-user.target(運行級別3):

sudo systemctl isolate multi-user.target

並更改回圖形目標(運行級別5):

sudo systemctl isolate graphical.target

要將multi-user.target設置為默認目標,請使用以下命令:

sudo systemctl set-default multi-user.target

此命令創建符號鏈接。

系統默認目標

如果現在重新啟動,您將被帶到多用戶目標。

多用戶目標

要列出活動目標,請運行

systemctl list-units --type target

管理日誌

系統軟件套件包括 journalctl 實用程序,可用於在Linux上管理日誌。 傳統上,Linux將日誌保存在 /var/log/ 目錄。 在具有systemd的Linux發行版上,您可能無法在該目錄中找到諸如後綴郵件日誌(/var/log/mail.log)之類的日誌。

您可以使用以下命令查看最近的日誌。 你可以按 F 鍵跳到下一頁,然後按 B 返回上一頁的關鍵。 按 Q 退出。

sudo journalctl

使用 grep 搜索與您的搜索詞相關的日誌

sudo journalctl | grep <search term>

自當前啟動以來查看日誌

sudo journalctl -b

查看自上次啟動以來的日誌

sudo journalctl -b -1

這是顯示實時生成日誌的一個小技巧。

sudo journalctl -f

journalctl示例

顯示一個單元的日誌,例如ssh服務單元。

sudo journalctl -u ssh

要查看Postfix日誌,請運行

sudo journalctl -u postfix

而已! 訂閱我們的免費時事通訊以獲取最新的Linux教程。 您也可以在Google +,Twitter或喜歡我們的Facebook頁面上關注我們。

Sidebar