В настоящее время я работаю на машине 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
по-видимому, эти системные псевдонимы не разрешаются - есть некоторые обсуждения того, почему и следует ли это делать.Проблема № 11846: Journalctl работает с псевдонимом Systemd (в разделе «Установка»)а также связанный с этим вопрос (но не получивший удовлетворительного ответа) на нашем родственном сайте,Как использовать псевдонимы systemd с journalctl?