Journalctl -u sshd.service 命令返回“无条目”

Ala*_*a S 8 server sshd systemd systemd-journald

我目前正在 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 -- .
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时journalctl -u ssh.service,我会获取日志条目。由于sshd.servicessh.service是不同的 systemd 单元,为什么它不提供任何journalctl -u sshd.service命令条目?

ste*_*ver 7

至少在默认的 Ubuntu + OpenSSH 实现中,sshd.service并且ssh.service实际上不是不同的单元 - 前者是后者的别名[Install],在其单元文件的部分中定义/lib/systemd/system/ssh.service

[Install]
WantedBy=multi-user.target
Alias=sshd.service
 
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

systemctl允许您通过使用ssh.service, 或sshd.service(甚至只是ssh或)来启动/停止/查询服务的状态sshd

因此,您所观察到的是,journalctl显然无法解析这些 systemd 别名 - 在Issue #11846:Journalctl 与 Systemd Alias 一起工作(在安装部分)以及相关的(但没有得到令人满意的回答)中,有一些关于为什么以及是否应该解析的讨论。我们兄弟网站上的问题,如何将 systemd 别名与journalctl 一起使用?