journalctl -u sshd.service コマンドが「エントリなし」を返す

journalctl -u sshd.service コマンドが「エントリなし」を返す

現在、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、ログ エントリが取得されます。 と は異なる systemd ユニットであるためsshd.service、コマンドssh.serviceのエントリが何も提供されないのはなぜですかjournalctl -u sshd.service?

答え1

少なくともUbuntu + OpenSSHのデフォルトの実装では、sshd.servicessh.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.servicesshd.servicesshsshd

つまり、あなたが観察しているのは、journalctlどうやらこれらのsystemdエイリアスを解決していないということです。なぜ解決すべきなのか、そして解決すべきかどうかについては議論があります。問題 #11846: Journalctl が Systemd エイリアスで動作する (インストール セクション)また、姉妹サイトにも関連する(しかし満足のいく回答が得られていない)質問があります。journalctl で systemd エイリアスを使用するにはどうすればいいですか?

関連情報