systemdのログ確認方法


目的

systemdのログ確認方法を調査する
(Raspberry Pi 3 のshutdown時に自動で外付けHDDを停止させる で追加したServiceのログを確認したい)

環境

  • Raspberry Pi 3 ModelB
  • OS:Raspbian GNU/Linux 9.4 (stretch)
  • 外付けHDD:EC-PHU3W1(IO-DATA)

作業メモ

systemdについて少し調査

参考サイト
http://enakai00.hatenablog.com/entry/20130914/1379146157
http://enakai00.hatenablog.com/entry/20141130/1417310904

  • Unit

用途に応じた処理の塊
Raspberry Pi 3 のshutdown時に自動で外付けHDDを停止させる だと"shutdown/reboot/halt時にHDDの電源をOFFする"という用途1
現在動作しているunitは以下で確認可能

$ systemctl list-units --type=service
  UNIT                               LOAD   ACTIVE SUB     DESCRIPTION
  alsa-restore.service               loaded active exited  Save/Restore Sound Card State
  avahi-daemon.service               loaded active running Avahi mDNS/DNS-SD Stack
  bluealsa.service                   loaded active running BluezALSA proxy
(略)
  • target

複数のUnitをグルーピングする
systemdの起点はdefault.target
今回の環境だと、/lib/systemd/system/default.target

  • ログ出力

journaldというServiceでログ管理しているらしい

ログ(journald)の内容確認

参考サイト
http://enakai00.hatenablog.com/entry/20141130/1417310904

本題に戻ってログの内容確認を行う

  • ログ保存用のフォルダを作成
$ sudo mkdir /var/log/journal

このフォルダを作成しないと再起動ごとにログが消えてしまい、前回shutdown時のログを確認できない

  • ログを確認
$ journalctl

上記で確認できるが大量にログが出るので、grepなどで必要なものだけに絞る

$ journalctl | grep hdd
(略)
 6月 24 23:24:15 raspberrypi hdd_off.sh[1188]: HDD is nothing

すると、意図したログ(HDD未接続時のログ)が出力されていることが確認できた

まとめ

目標達成!

systemdのログ確認方法を調査する
(Raspberry Pi 3 のshutdown時に自動で外付けHDDを停止させる で追加したServiceのログを確認したい)

これでService作成からログによる動作確認までできるようになった


  1. 他と比べるとレベルが細かすぎるので本来はUnitのレベルで定義すべきでないものに思えるが・・