我目前正在 Ubuntu 20.04 機器上工作。當我運行命令時journalctl -u sshd.service
,我收到以下回應。
-- Logs begin at Wed 2022-12-21 13:01:52 UTC, end at Fri 2023-03-31 15:10:32 UTC
-- No entries -- .
但是,當我運行時journalctl -u ssh.service
,我會取得日誌條目。由於sshd.service
和ssh.service
是不同的 systemd 單元,為什麼它不提供任何journalctl -u sshd.service
指令條目?
答案1
至少在預設的 Ubuntu + OpenSSH 實作中,sshd.service
它們ssh.service
實際上不是不同的單位 - 前者是一個別名對於後者,在[Install]
其單元文件的部分中定義/lib/systemd/system/ssh.service
:
[Install]
WantedBy=multi-user.target
Alias=sshd.service
此類別名將在DESCRIPTION
部分討論man systemd.unit
,並且本質上是透過創建符號連結來工作的 - 在本例中,
$ ls -l /etc/systemd/system/sshd.service
lrwxrwxrwx 1 root root 31 Feb 16 2022 /etc/systemd/system/sshd.service -> /lib/systemd/system/ssh.service
systemctl
允許您透過使用ssh.service
, 或sshd.service
(甚至只是ssh
或)來啟動/停止/查詢服務的狀態sshd
。
所以你觀察到的是,journalctl
顯然沒有解決這些 systemd 別名 - 有一些關於為什麼以及是否應該解決的討論問題 #11846:Journalctl 與 Systemd Alias 一起使用(在安裝部分)以及我們兄弟網站上的一個相關(但沒有得到令人滿意的回答)問題,如何在journalctl中使用systemd別名?