我目前正在使用 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 别名?