systemdの起動を木構造で可視化するbootvine
原題: A live tree of systemd jobs on the boot console
なぜ重要か
Linuxの起動可視化ツールは従来ほぼ手つかずの領域で、システム管理者や組み込み開発者の診断効率に直結する。
開発者のWillem Vanhulleは、Linux起動時にsystemdのジョブをリアルタイムの木構造として表示するブート画面ツール「bootvine」をCodebergで公開した。Rustで実装され、v0.1.3が最新版。起動中のユニット依存関係ツリーと、処理に時間がかかったユニットのタイムラインを専用の仮想端末(VT)に表示する。星は151個を獲得している。
bootvineは、従来のLinuxディストリビューションの起動画面——カーネルやsystemdのログが高速でスクロールするだけで何も把握できない「ログの壁」——に不満を持った開発者が自ら作ったツールだ。
仕組みはシンプルだが実用的。起動中に処理待ちのsystemdユニットを木構造で表示し、空いたスペースには実行済みユニットのうち処理が遅かったものをタイムライン形式で並べる。画面が固定されているため、流れ去る前に情報を読める。
機能面ではシャットダウンの追跡、LUKS解除などのパスフレーズ入力への対応、ユニット失敗時の原因表示(最後のジャーナル行を含む)も備える。nix-output-monitorのLinux起動版と位置づけられている。
動作要件はsystemd 246以上、libdbusとlibsystemd、仮想端末、そしてsystemd initrd(initrd段階からstage 2まで追跡するため)。実装言語はRust(85%)で、NixとPythonが補助的に使われている。CI/CDにはWoodpeckerを採用し、Nushellスクリプトでタスク管理している。
Codebergのリポジトリはすでに101コミット、6ブランチ、4タグを持ち、フォーク可能な状態で公開されている。インストールなしで試せる手順もREADMEに案内されている。