91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux的systemctl命令怎么使用

發布時間:2022-01-25 10:01:03 來源:億速云 閱讀:242 作者:iii 欄目:開發技術

這篇文章主要講解了“Linux的systemctl命令怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux的systemctl命令怎么使用”吧!

Linux常用命令systemctl 命令是 systemd 系統和服務的管理命令,systemctl 是與 systemd 交互的主要工具,其實現的功能包含了 service 和 chkconfig 這兩個命令的功能。

Linux的systemctl命令怎么使用

命令格式

systemctl [OPTIONS...] COMMAND [NAME...]

選項說明

-t, --type=[help, UNITTYPE...]
指明單元類型,使用逗號分隔。如果是 help,則列出所有可用的 unit type
--state=UNITSTATE...
指明單元的狀態,使用逗號分隔。例如使用 --state=failed,則在輸出單元列表時只展示狀態為 failed 的單元
-p, --property=PROPERTY...
使用 show 命令顯示 unit/job/manager 屬性時,將顯示限制為參數中指定的屬性,使用逗號分隔,例如屬性 MainPID
-a, --all
列出單元時,顯示所有加載的單元,無論其狀態如何,包括非活動單元。顯示 unit/job/manager 屬性時,顯示所有屬性,無論它們是否已設置
-r, --recursive
列出單元時,還顯示本地容器的單元。本地容器的單元將以容器名稱作為前綴,并用單個冒號字符分隔
--reverse
與命令 list-dependencies 一起使用,顯示單元之間的反向依賴項
--after
與命令 list-dependencies 一起使用,顯示指定單元前面的單元
--before
與命令 list-dependencies 一起使用,顯示指定單元后面的單元
-l, --full
不要省略單元名稱、進程樹條目、日志輸出,也不要截斷狀態、單元列表、作業列表和計時器列表輸出中的單元描述
--show-types
顯示套接字時,顯示套接字的類型
--job-mode=MODE
在對新作業排隊時,此選項控制如何處理已排隊的作業。可取值 fail、replace、replace_irreversibly、isolate、ignore-dependencies、ignore-requirements 或 flush 之一。默認為 replace,除非使用了表示隔離作業模式的 isolate 命令
-i, --ignore-inhibitors
當系統關閉或睡眠請求時,忽略約束鎖,否則系統關閉或睡眠請求會失敗。應用程序可以建立約束鎖,以避免某些重要操作(如CD刻錄或類似操作)被系統關閉或睡眠狀態中斷
-q, --quiet
靜默模式,抑制 snapshot, is-active, is-failed, is-enabled, is-system-running, enable 和 disable 命令的標準輸出
--no-block
不同步等待請求的操作完成。如果未指定該選項,驗證完作業并排隊,systemctl 將等待作業完成
--system
與服務管理器(service manager)交互。為缺省選項
--no-wall
在 halt, power-off, reboot 操作前不發出警告
--no-reload
當與命令 enable 和 disable 一起使用時,不隱式重新加載守護程序的配置
--no-ask-password
當與 start 和相關命令一起使用時,禁止請求密碼
--kill-who=WHO
與命令 kill 一起使用時,選擇向哪個進程發送信號。必須是 main、control 或 all 中的一個,分別選擇殺死主進程、控制進程還是單元的所有進程
-s, --signal=SIGNAL
與命令 kill 一起使用,選擇向進程發送的信號。缺省為 SIGTERM
-f, --force
與 enable 一起使用時,覆蓋任何現有沖突的符號鏈接。與 halt、poweroff、reboot 或 kexec 一起使用時,在不關閉所有單元的情況下執行所選操作
--now
當與 enable 一起使用時,單元也將啟動。當與 disable 或 mask 一起使用時,單元也將停止
--root=PATH
當與 enable/disable/is-enabled(等相關命令)一起使用時,在查找單元文件時使用指定的根路徑
--runtime
當與 enable、disable、edit(等相關命令)一起使用時,只需臨時進行更改,以便在下次系統重新啟動時丟失這些更改
--preset-mode=MODE
與命令 preset 或 preset-all 一起使用時,預設模式為 full(缺省)、enable-only 或 disable-only 三者之一
-n, --lines=NUM
與命令 status 一起使用時,控制日志文件顯示的行數。默認為 10
-o, --output=FORMAT
與命令 status 一起使用時,控制日志條目的顯示格式,默認為 short。其它取值可參考明林 journalctl(1)
--plain
當與命令 list-dependencies 一起使用時,輸出將打印為列表而不是樹
-H, --host=HOST
指定遠程主機名,或用戶名@主機名進行遠程操作。機名可以選擇用一個容器名作為后綴,用 : 分隔
-M, --machine=MACHINE
指定本地容器名
--no-pager
不將管道輸出送到分頁瀏覽工具
--no-legend
不打印列頭和列腳
-h, --help
顯示幫助信息并退出
--version
顯示版本信息并退出

命令說明

實際上 systemctl 子命令的使用頻率會比選項更加頻繁,主要有單元命令(Unit Commands)、單元文件命令(Unit File Commands)、容器命令(Machine Commands)、作業命令(Job Commands)、快照命令(Snapshot Commands)、環境命令(Environment Commands)、管理器生命周期命令(Manager Lifecycle Commands)、系統命令(System Commands)

單元命令(Unit Commands)

list-units [PATTERN...]
列出所有已啟動的單元。如果指定一個或多個匹配模式,則只顯示符合某個模式的單元。該命令為默認命令
list-sockets [PATTERN...]
列出套接字單元,按照監聽的地址排列輸出。如果指定一個或多個匹配模式,則只顯示符合某個模式的單元
list-timers [PATTERN...]
列出按時間順序排列的計時器單元。如果指定一個或多個匹配模式,則只顯示符合某個模式的單元
start PATTERN...
啟動指定的單元
stop PATTERN...
停止指定的單元
reload PATTERN...
重新加載指定單元服務的配置文件。注意,是重新加載服務的配置,而不是 systemd 的單元配置文件。如果希望 systemd 重新加載單元的配置文件,請使用 daemon-reload 命令。換句話說:對于 Apache 的示例,這將在 web 服務器中重新加載 Apache 的 httpd.conf,而不是 apache.service systemd 單元文件
restart PATTERN...
重啟指定的單元
try-restart PATTERN...
嘗試重啟指定的單元。如果單元不處于運行狀態,則不進行重啟
reload-or-restart PATTERN...
重新加載指定單元服務的配置文件。如果失敗則重啟服務
reload-or-try-restart PATTERN...
重新加載指定單元服務的配置文件。如果失敗則嘗試重啟服務。如果單元不處于運行狀態,則不進行重啟
isolate NAME
啟動命令行中指定的單元及其依賴項,并停止所有其他的單元
kill PATTERN...
向單元的一個或多個進程發送信號。使用 --kill who= 選擇要終止的進程。使用 --signal= 選擇要發送的信號
is-active PATTERN...
檢查指定單元是否處于 active 狀態。如果至少一個是活動的,則返回退出代碼 0,否則為非零
is-failed PATTERN...
檢查指定單元是否處于 failed 狀態。如果至少一個是失敗的,則返回退出代碼 0,否則為非零
status [PATTERN...|PID...]
顯示一個或多個單元的簡要運行時狀態信息,然后是日志中的最新日志數據。如果未指定單位,則顯示系統狀態。如果與 --all 結合使用,還將顯示所有單元的狀態。如果給定 PID,則顯示進程所屬單元的信息
show [PATTERN...|JOB...]
顯示一個或多個單元、作業或管理器本身的屬性。如果未指定參數,則將顯示管理器的屬性
cat PATTERN...
顯示一個或多個單元的配置文件
set-property NAME ASSIGNMENT...
在運行時設置指定的單元屬性。如果同時使用 --runtime 選項,則下一次系統重啟屬性將失效
help PATTERN...|PID...
顯示一個或多個單元的手冊頁(如果可用)。如果給定了PID,則顯示該進程所屬單元的手冊頁
reset-failed [PATTERN...]
重置指定單元的 failed 狀態,如果未指定單元名稱,則重置所有單元的 failed 狀態
list-dependencies [NAME]
顯示指定單元所依賴的單元。它遞歸地列出 Requires=、RequiresOverridable=、Requisite=、RequisiteOverridable=、Wants=、BindsTo= 依賴項之后的單元。如果未指定單位,缺省為 default.target

單元文件命令(Unit File Commands)

list-unit-files [PATTERN...]
列出已安裝的單元文件及其啟用狀態
enable NAME...
啟用一個或多個單元文件或單元文件實例。這將創建一些符號鏈接,記錄在單元文件的 Install 部分。創建符號鏈接后,將重新加載 systemd 配置以確保立即生效
disable NAME...
禁用一個或多個單元。這將從單元配置目錄中刪除指向指定單元文件的所有符號鏈接,從而撤消由 enable 所做的更改。移除符號鏈接后,將重新加載 systemd 配置以確保立即生效。注意,此命令不會隱式停止正在禁用的單元。如果需要的話,使用 --now 選項,要么在之后執行一個附加的 stop 命令
reenable NAME...
重新啟用一個或多個單元文件。這是 disable 和 enable 的組合,用于將啟用單元的符號鏈接重置為單元文件 Install 部分中配置的值
preset NAME...
重置指定單元文件的 disable/enable 狀態為預設策略文件中配置的值。可以與選項 --preset-mode 聯用選擇重置的結果狀態。關于預設策略格式的詳細信息,參見 systemd.preset(5)
preset-all
將所有已安裝的單元文件重置為預設策略文件中配置的默認值。可以與選項 --preset-mode 聯用選擇重置的結果狀態
is-enabled NAME...
檢查是否啟用了指定的單元文件
mask NAME...
屏蔽一個或多個單元文件,把這些單元鏈接到 /dev/null,使它們無法啟動
unmask NAME...
反屏蔽一個或多個單元文件
link FILENAME...
將不在單元文件搜索路徑中的單元文件鏈接到單元文件搜索路徑中,這需要單元文件的絕對路徑
add-wants TARGET NAME..., add-requires TARGET NAME...
給指定單元添加依賴
edit NAME...
編輯插入片段或使用選項 --full 表示替換整個文件,以擴展或重寫指定的單元
get-default
返回別名為 default.target 的單元
set-default NAME
設置默認的單元,使 default.target 軟鏈接到目標單元

容器命令(Machine Commands)

list-machines [PATTERN...]
列出主機和所有正在運行的本地容器及其狀態。如果指定了一個或多個模式,則只顯示與其中一個模式匹配的容器

作業命令(Job Commands)

list-jobs [PATTERN...]

cancel JOB...
列出正在進行的作業。如果指定了一個或多個模式,則只顯示與其中一個模式匹配的單元的作業
cancel JOB...
取消一個或多個指定作業 ID 的作業。如果未指定作業 ID,則取消所有掛起的作業

快照命令(Snapshot Commands)

snapshot [NAME]
創建指定名稱的快照。如果未指定快照名則自動生成。快照指的是 systemd 管理器的保存狀態。它被實現為一個使用此命令動態生成的單元,并且依賴于當時活動的所有單元。稍后,用戶可以使用快照單元上的 isolate 命令返回到該狀態
delete PATTERN...
刪除快照

環境命令(Environment Commands)

show-environment
顯示 systemd manager 使用的環境變量
set-environment VARIABLE=VALUE...
設置 systemd manager 使用的環境變量
unset-environment VARIABLE...
取消一個或多個 systemd manager 的環境變量
import-environment [VARIABLE...]
將客戶端上設置的一個或多個環境變量導入 systemd manager 環境塊。如果未傳遞參數,則導入整個環境塊

管理器生命周期命令(Manager Lifecycle Commands)

daemon-reload
重新加載 systemd 管理器配置。這將重新運行所有生成器(請參閱 systemd.generator(7)),重新加載所有單元文件,并重新創建整個依賴關系樹。在重新加載守護進程時,所有 systemd 監聽的代表用戶配置的 sockets,保持可訪問狀態
daemon-reexec
重新執行 systemd 管理器

系統命令(System Commands)

is-system-running
檢查系統是否正在運并返回當前的系統狀態,狀態有 initializing,starting,running,degraded,maintenance,stopping
default
進入默認模式,等同于子命令 isolate default.target
rescue
進入救援模式。等同于子命令 isolate rescue.target,會向所有用戶打印警告消息
emergency
進入緊急模式。等同于子命令 isolate emergency.target,會向所有用戶打警告消息
halt
關閉并停止系統。等同于子命令 start halt.target --irreversible
poweroff
關閉并關閉系統電源。等同于子命令 start poweroff.target --irreversible,會向所有用戶打印警告消息
reboot [arg]
關閉并重新啟動系統。等同于子命令 start reboot.target --irreversible,會向所有用戶打印警告消息
kexec
通過 kexec 關閉并重新啟動系統。等同于子命令 start kexec.target --irreversible,會向所有用戶打印警告消息
switch-root ROOT [INIT]
切換到不同的根目錄并在其下執行新的系統管理器進程
suspend
暫停系統
hibernate
使系統休眠。這將激活特殊的 hibernate.target 目標
hybrid-sleep
休眠并掛起系統。這將激活特殊的 hybrid-sleep.target 目標

實際上,systemctl 常用的子命令并不多,主要有:

start 啟動服務
stop 停止服務
restart 重啟服務
enable 使某服務開機自啟
disable 關閉某服務開機自啟
status 查看服務狀態
list-units -–type=service 列舉所有已啟動服務

常用示例

(1)使用 systemctl 管理系統。

# 重啟系統
systemctl reboot

# 關閉系統,切斷電源
systemctl poweroff

# CPU停止工作
systemctl halt

# 暫停系統
systemctl suspend

# 讓系統進入冬眠狀態
systemctl hibernate

# 讓系統進入交互式休眠狀態
systemctl hybrid-sleep

# 啟動進入救援狀態(單用戶狀態)
systemctl rescue

(2)使用 systemctl list-units 查看系統的單元。

# 列出正在運行的 unit
systemctl
# 或
systemctl list-units

# 列出所有 unit,包括沒有運行的 unit
systemctl list-units --all

# 列出所有沒有運行的 unit
systemctl list-units --all --state=inactive

# 列出所有加載失敗的 unit
systemctl list-units --failed

# 列出所有正在運行的、類型為 service 的 unit
systemctl list-units --type=service

(3)使用 systemctl status 查看系統狀態和單個 unit 的狀態。

# 顯示系統狀態
systemctl status

# 顯示單個 unit 的狀態
sysystemctl status sshd.service

# 顯示遠程主機的某個 unit 的狀態
systemctl -H root@rhel7.example.com status httpd.service

(4)服務管理。

# 啟動一個服務
systemctl start apache.service

# 停止一個服務
systemctl stop apache.service

# 重啟一個服務
systemctl restart apache.service

# 殺死一個服務的所有子進程
systemctl kill apache.service

# 重新加載一個服務的配置文件
systemctl reload apache.service

# 重新加載 systemd 管理器配置
systemctl daemon-reload

# 顯示某個 unit 的所有底層參數
systemctl show httpd.service

# 顯示某個 unit 的指定屬性的值
systemctl show -p CPUShares httpd.service

# 設置某個 unit 的指定屬性
systemctl set-property httpd.service CPUShares=500

(5)查看 unit 之間的依賴關系。 A 依賴于 B,意味著 systemd 在啟動 A 的時候,同時會去啟動 B。

# 列出一個 Unit 的所有依賴
$ systemctl list-dependencies nginx.service

上面命令的輸出結果之中,有些依賴是 Target 類型,默認不會展開顯示。如果要展開 Target,就需要使用 –all 參數。

systemctl list-dependencies --all nginx.service

(6)設置服務開機啟動。 systemd 默認從目錄 /etc/systemd/system/ 讀取配置文件。但是,里面存放的大部分文件都是符號鏈接,指向目錄 /usr/lib/systemd/system/,真正的配置文件存放在那個目錄。systemctl enable命令用于在上面兩個目錄之間,建立符號鏈接關系。

systemctl enable sshd.service
# 等同于
ln -s /usr/lib/systemd/system/sshd.service /etc/systemd/system/multi-user.target.wants/sshd.service'

如果配置文件里面設置了開機啟動,systemctl enable命令相當于激活開機啟動。與之對應的,systemctl disable 命令用于在兩個目錄之間,撤銷符號鏈接關系,相當于撤銷開機啟動。

systemctl disable sshd.service

配置文件的后綴名,就是該 unit 的種類,比如 sshd.socket。如果省略,systemd 默認后綴名為 .service,所以 sshd 會被理解成 sshd.service。

拓展知識

Unit

配置文件的格式

systemd 可以管理所有系統資源,不同的資源統稱為單元(unit)。unit 一共分成 12 種。

Service unit:系統服務
Target unit:多個 Unit 構成的一個組
Device Unit:硬件設備
Mount Unit:文件系統的掛載點
Automount Unit:自動掛載點
Path Unit:文件或路徑
Scope Unit:不是由 Systemd 啟動的外部進程
Slice Unit:進程組
Snapshot Unit:Systemd 快照,可以切回某個快照
Socket Unit:進程間通信的 socket
Swap Unit:swap 文件
Timer Unit:定時器

每一個 Unit 都有一個配置文件,告訴 Systemd 怎么啟動這個 Unit 。配置文件就是普通的文本文件,可以用文本編輯器打開,也可以使用 systemctl cat 命令查看配置文件的內容。

systemctl cat sshd.service

# /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

從上面的輸出可以看到,配置文件分成幾個區塊。每個區塊的第一行,是用方括號表示的區別名,比如[Unit]。注意,配置文件的區塊名和字段名,都是大小寫敏感的。每個區塊內部是一些等號連接的鍵值對。注意,鍵值對的等號兩側不能有空格。

配置文件的區塊

[Unit]區塊通常是配置文件的第一個區塊,用來定義 Unit 的元數據,以及配置與其他 Unit 的關系。它的主要字段如下。

Description:簡短描述
Documentation:文檔地址
Requires:當前 Unit 依賴的其他 Unit,如果它們沒有運行,當前 Unit 會啟動失敗
Wants:與當前 Unit 配合的其他 Unit,如果它們沒有運行,當前 Unit 不會啟動失敗
BindsTo:與Requires類似,它指定的 Unit 如果退出,會導致當前 Unit 停止運行
Before:如果該字段指定的 Unit 也要啟動,那么必須在當前 Unit 之后啟動
After:如果該字段指定的 Unit 也要啟動,那么必須在當前 Unit 之前啟動
Conflicts:這里指定的 Unit 不能與當前 Unit 同時運行
Condition...:當前 Unit 運行必須滿足的條件,否則不會運行
Assert...:當前 Unit 運行必須滿足的條件,否則會報啟動失敗

[Service]區塊用來 Service 的配置,只有 Service 類型的 Unit 才有這個區塊。它的主要字段如下。

Type:定義啟動時的進程行為。它有以下幾種值。
Type=simple:默認值,執行ExecStart指定的命令,啟動主進程
Type=forking:以 fork 方式從父進程創建子進程,創建后父進程會立即退出
Type=oneshot:一次性進程,Systemd 會等當前服務退出,再繼續往下執行
Type=dbus:當前服務通過D-Bus啟動
Type=notify:當前服務啟動完畢,會通知Systemd,再繼續往下執行
Type=idle:若有其他任務執行完畢,當前服務才會運行
ExecStart:啟動當前服務的命令
ExecStartPre:啟動當前服務之前執行的命令
ExecStartPost:啟動當前服務之后執行的命令
ExecReload:重啟當前服務時執行的命令
ExecStop:停止當前服務時執行的命令
ExecStopPost:停止當其服務之后執行的命令
RestartSec:自動重啟當前服務間隔的秒數
Restart:定義何種情況 Systemd 會自動重啟當前服務,可能的值包括always(總是重啟)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
TimeoutSec:定義 Systemd 停止當前服務之前等待的秒數
Environment:指定環境變量

[Install]通常是配置文件的最后一個區塊,用來定義如何啟動,以及是否開機啟動。它的主要字段如下。

WantedBy:它的值是一個或多個 Target,當前 Unit 激活時(enable)符號鏈接會放入/etc/systemd/system目錄下面以 Target 名 + .wants后綴構成的子目錄中
RequiredBy:它的值是一個或多個 Target,當前 Unit 激活時,符號鏈接會放入/etc/systemd/system目錄下面以 Target 名 + .required后綴構成的子目錄中
Alias:當前 Unit 可用于啟動的別名
Also:當前 Unit 激活(enable)時,會被同時激活的其他 Unit

配置文件的狀態

systemctl list-unit-files 命令用于列出所有配置文件。

# 列出所有配置文件
$ systemctl list-unit-files

# 列出指定類型的配置文件
$ systemctl list-unit-files --type=service

這個命令會輸出一個列表。

systemctl list-unit-files

UNIT FILE              STATE
chronyd.service        enabled
clamd@.service         static
clamd@scan.service     disabled

這個列表顯示每個配置文件的狀態,一共有四種。

enabled:已建立啟動鏈接
disabled:沒建立啟動鏈接
static:該配置文件沒有[Install]部分(無法執行),只能作為其他配置文件的依賴
masked:該配置文件被禁止建立啟動鏈接

注意,從配置文件的狀態無法看出,該 Unit 是否正在運行。這必須執行前面提到的 systemctl status 命令。

systemctl status sshd.service

一旦修改配置文件,就要讓 SystemD 重新加載配置文件,然后重新啟動,否則修改不會生效。

systemctl daemon-reload
systemctl restart httpd.service

Target

啟動計算機的時候,需要啟動大量的 Unit。如果每一次啟動,都要一一寫明本次啟動需要哪些 Unit,顯然非常不方便。Systemd 的解決方案就是 Target。

簡單說,Target 就是一個 Unit 組,包含許多相關的 Unit 。啟動某個 Target 的時候,Systemd 就會啟動里面所有的 Unit。從這個意義上說,Target 這個概念類似于”狀態點”,啟動某個 Target 就好比啟動到某種狀態。

傳統的init啟動模式里面,有 RunLevel 的概念,跟 Target 的作用很類似。不同的是,RunLevel 是互斥的,不可能多個 RunLevel 同時啟動,但是多個 Target 可以同時啟動。

# 查看當前系統的所有 Target
systemctl list-unit-files --type=target

# 查看一個 Target 包含的所有 Unit
systemctl list-dependencies multi-user.target

# 查看啟動時的默認 Target
systemctl get-default

# 設置啟動時的默認 Target
systemctl set-default multi-user.target

# 切換 Target 時,默認不關閉前一個 Target 啟動的進程,systemctl isolate 命令改變這種行為,關閉前一個 Target 里面所有不屬于后一個 Target 的進程
systemctl isolate multi-user.target

Target 與 傳統 RunLevel 的對應關系如下。

Traditional runlevel      New target name     Symbolically linked to...

Runlevel 0           |    runlevel0.target -> poweroff.target
Runlevel 1           |    runlevel1.target -> rescue.target
Runlevel 2           |    runlevel2.target -> multi-user.target
Runlevel 3           |    runlevel3.target -> multi-user.target
Runlevel 4           |    runlevel4.target -> multi-user.target
Runlevel 5           |    runlevel5.target -> graphical.target
Runlevel 6           |    runlevel6.target -> reboot.target

它與init進程的主要差別如下。

(1)默認的 RunLevel(在/etc/inittab文件設置)現在被默認的 Target 取代,位置是/etc/systemd/system/default.target,通常符號鏈接到 graphical.target(圖形界面)或者multi-user.target(多用戶命令行)。

(2)啟動腳本的位置,以前是/etc/init.d目錄,符號鏈接到不同的 RunLevel 目錄 (比如/etc/rc3.d、/etc/rc5.d等),現在則存放在/lib/systemd/system和/etc/systemd/system目錄。

(3)配置文件的位置,以前init進程的配置文件是/etc/inittab,各種服務的配置文件存放在/etc/sysconfig目錄。現在的配置文件主要存放在/lib/systemd目錄,在/etc/systemd目錄里面的修改可以覆蓋原始設置。

日志管理

Systemd 統一管理所有 Unit 的啟動日志。帶來的好處就是,可以只用 journalctl 一個命令,查看所有日志(內核日志和應用日志)。日志的配置文件是 /etc/systemd/journald.conf。

journalctl 功能強大,用法非常多。

# 查看所有日志(默認情況下,只保存本次啟動的日志)
journalctl

# 查看內核日志(不顯示應用日志)
journalctl -k

# 查看系統本次啟動的日志
journalctl -b
journalctl -b -0

# 查看上一次啟動的日志(需更改設置)
journalctl -b -1

# 查看指定時間的日志
journalctl --since="2012-10-30 18:17:16"
journalctl --since "20 min ago"
journalctl --since yesterday
journalctl --since "2015-01-10" --until "2015-01-11 03:00"
journalctl --since 09:00 --until "1 hour ago"

# 顯示尾部的最新10行日志
journalctl -n

# 顯示尾部指定行數的日志
journalctl -n 20

# 實時滾動顯示最新日志
journalctl -f

# 查看指定服務的日志
journalctl /usr/lib/systemd/systemd

# 查看指定進程的日志
journalctl _PID=1

# 查看某個路徑的腳本的日志
$ sudo journalctl /usr/bin/bash

# 查看指定用戶的日志
journalctl _UID=33 --since today

# 查看某個 Unit 的日志
journalctl -u nginx.service
journalctl -u nginx.service --since today

# 實時滾動顯示某個 Unit 的最新日志
journalctl -u nginx.service -f

# 合并顯示多個 Unit 的日志
$ journalctl -u nginx.service -u php-fpm.service --since today

# 查看指定優先級(及其以上級別)的日志,共有 8 級
# 0: emerg
# 1: alert
# 2: crit
# 3: err
# 4: warning
# 5: notice
# 6: info
# 7: debug

journalctl -p err -b

# 日志默認分頁輸出,--no-pager 改為正常的標準輸出
journalctl --no-pager

# 以 JSON 格式(單行)輸出
journalctl -b -u nginx.service -o json

# 以 JSON 格式(多行)輸出,可讀性更好
journalctl -b -u nginx.serviceqq -o json-pretty

# 顯示日志占據的硬盤空間
journalctl --disk-usage

# 指定日志文件占據的最大空間
journalctl --vacuum-size=1G

# 指定日志文件保存多久
journalctl --vacuum-time=1years

感謝各位的閱讀,以上就是“Linux的systemctl命令怎么使用”的內容了,經過本文的學習后,相信大家對Linux的systemctl命令怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

攀枝花市| 紫阳县| 天津市| 新密市| 若尔盖县| 大荔县| 察隅县| 新疆| 灵璧县| 上杭县| 保靖县| 沂源县| 多伦县| 玉树县| 蒙阴县| 兰州市| 额济纳旗| 镇原县| 集安市| 梁平县| 正定县| 炎陵县| 麦盖提县| 陈巴尔虎旗| 紫金县| 日喀则市| 汾西县| 桦川县| 远安县| 巫山县| 内江市| 仁寿县| 南部县| 西华县| 泗水县| 赣榆县| 青阳县| 阿拉善右旗| 乳山市| 塘沽区| 渝中区|