created: 2022-11-16T14:19:30.865Z

ソフトウェアデザインのsystemd実践入門メモ(3)

ソフトウェアデザイン2018年2月号の「systemd実践入門」を読んでメモ。

journald とは

systemd 環境で使われるログ管理ソフト。これまでは rsyslogd が担っていた部分をやる。

  • デーモンから出力されるログの蓄積/表示
  • ログファイルの管理
  • その他、ログ流量のレートリミットなど

ログが /var/log/journal に入るまで

  1. アプリがシステムコールである syslog 関数を呼ぶ
  2. /dev/log にログが出力される
  3. systemd-journald がそれを /var/log/journal に追記していく

もし、rsyslogd も動作している環境だと、imjournal がログの追記を検知して、さらに /var/log/message へ追記されていく。

timer とは

これまで crond が担っていた仕組みを systemd 上でやるための仕組み。

2つファイルを用意して動作させる。

  • xxxx.timer
    • どのような頻度で実行されるべきかを細かく定義できる
      • 休止状態でスキップされていたら?
      • ランダムに遅延させる必要がある?
      • タイマーの精度はどれくらい正確に実行すべき? (消費電力とトレードオフ)
  • xxxx.service
    • 実行されるコマンドについて定義する

どんなコマンドが実行されるかを定義するのは、あくまでサービスファイルである。

その他

誌面では以下のような情報も紹介されていたが、まだつかわなさそうなのでまたこんど使う時にちゃんと読む。

  • サービスごとのテンポラリファイルの設定
  • サービスごとのリソース制限の設定
  • systemd-nspawn (コンテナというよりか chroot 的なツール)