Fedoraのデフォルト設定ではsystemd-journald
は/var/log/journal
以下にログ(ジャーナル)を保存する。journalctl
はその下にあるファイルを読み出すだけである。
実際には/var/log/journal
の直下には128bitのmachine-idを名前にもつディレクトリがあり、そのディレクトリの中にジャーナルが保存されている。machine-idは/etc/machine-id
の中に書かれているので、ジャーナルは/var/log/journal/$(cat /etc/machine-id)/
の下にある。こんな感じ。
$ ls -1 /var/log/journal/$(cat /etc/machine-id)/
system.journal
user-1000.journal
このあたりの処理はjournalctl
自体ではなくてsd_journal_openというAPIがやってくれている。journalctl
はそのAPIを呼ぶだけ。
上記例では、2つのファイルが保存されているが、ファイル名から推測できる通り、それぞれシステムログとユーザ毎のログである。デフォルトでは(権限があれば)、journalctl
では両方のログが混ざったものが表示される。--system
か--user
オプションをつければどちらかだけを見ることもできる。(--user
ならば一般ユーザも自分のログを見ることができる、わけではないらしい。)