Stand Up and Shout!

勉強したことや、思いついたことを気ままに記述します

systemdの思想と機能

2023年12月21日に『systemdの思想と機能 linuxを支えるシステム管理のためのソフトウェアスイート』が出版されました。

マインドマップによる整理

TBD

目次の俯瞰

systemdの思想と機能 Linuxを支えるシステム管理のためのソフトウェアスイート
    第1章 systemdとは
        1.1 systemdとは
        1.2 なぜsystemdは広い領域を扱うのか
        1.3 サービス管理にみるsystemdの特徴
        1.4 systemdの資料とドキュメント
    第2章 unitとunit file
        2.1 unitとは
        2.2 unitが持つ情報
        2.3 unit fileとは
        2.4 unit fileが配置されるディレクトリ
        2.5 unit fileのドロップイン
        2.6 unit fileの編集
        2.7 unit fileの確認
        2.8 unit fileの検証
        2.9 unit fileとunitの関係
        2.10 unitの状態をもとに戻す
    第3章 unitの状態,unit間の依存関係,target unit
        3.1 unitの状態
        3.2 Job
        3.3 unitの依存関係
        3.4 トランザクション
        3.5 Jobの実行
        3.6 現在の依存関係の確認
        3.7 target unit
    第4章 プロセス実行環境の用意
        4.1 systemdはプロセスの実行環境を用意する
        4.2 systemd-runでsystemdが用意する環境を試す
        4.3 serviceのsandboxing
        4.4 nohup代わりにsystemd-runを使う
        4.5 systemdによる環境設定を使わずにunitを作る
    第5章 service unit
        5.1 service unitの役割
        5.2 service unitへの操作
        5.3 起動/終了のおおまかな流れ
        5.4 serviceのTypeとactiveになるタイミング
        5.5 サービスの終了
        5.6 プロセスの監視と再起動
        5.7 起動/終了時の実行フロー
        5.8 起動用と確認用のservice unitに分離する
        5.9 トラブルシュート集
    第6章 timer/path/socket unit
        6.1 イベントを契機にserviceをactiveにするunit
        6.2 timer unit
        6.3 path unit
        6.4 socket unit
    第7章 generatorとmount/automount/swap unit
        7.1 generatorとそれにまつわるunit
        7.2 generator
        7.3 mount unit
        7.4 automount unit
        7.5 swap unit
        7.6 systemd-mountコマンド
    第8章 control group,slice unit,scope unit
        8.1 systemdとcontrol group
        8.2 control groupとは
        8.3 cgroup V2の有効化
        8.4 unitとcgroupの対応関係
        8.5 slice unit
        8.6 scope unit
        8.7 関連ディレクティブ
        8.8 cgroup管理用のツール
        8.9 UResourced
    第9章 udev,device unit
        9.1 udevとは
        9.2 udevでのデバイス
        9.3 なぜudevが必要なのか?
        9.4 ハードウェアイベント発生からdevice unit作成まで
        9.5 uevent
        9.6 ルールファイル
        9.7 hwdb
        9.8 NICの命名
    第10章 systemd-journald
        10.1 systemd-journaldとは
        10.2 systemd-journaldへのログ記録
        10.3 journalに保存される情報
        10.4 journalctlによる検索と整形
        10.5 複雑な検索の例
        10.6 journalのファイル配置とローテート
        10.7 journalは長期間保存には向かない
        10.8 systemd-journaldの起動タイミング
        10.9 syslogとの連携
        10.10 ログの制限,unitごとの設定
        10.11 アプリケーションからのログ出力
    第11章 core dump管理
        11.1 core dump管理
        11.2 core dumpとは
        11.3 Linuxカーネルによるcore dump出力
        11.4 core dump管理の必要性
        11.5 systemd-coredump
        11.6 systemd-coredumpの有効化
        11.7 coredumpctlコマンド
        11.8 デバッグ作業での利用
        11.9 コンテナ内プロセスのcore dump
        11.10 systemd-coredumpの無効化
    第12章 systemd-logind,pam_systemd
        12.1 セッションを管理するsystemd-logind,pam_systemd
        12.2 Virtual Consoleとハードウェア管理
        12.3 マルチシート
        12.4 systemd-logindの役割
        12.5 セッションの作成
        12.6 セッションへの操作
        12.7 sleep/shutdown管理
        12.8 セッションの終了
    第13章 systemd-tmpfiles,systemd-sysusers
        13.1 ファイルの自動作成/削除,アカウントの自動作成
        13.2 systemd-tmpfilesコマンド
        13.3 systemd-tmpfilesの用途
        13.4 systemd-tmpfilesのservice
        13.5 systemd-tmpfilesの設定
        13.6 systemd-tmpfilesでできないこと
        13.7 systemd-sysusersコマンド
        13.8 systemd-sysusersの設定
        13.9 systemd-sysusersのオーバーライド
    第14章 D-Busとpolkit
        14.1 D-Busとpolkit
        14.2 D-Busとは
        14.3 busctl
        14.4 polkit
        14.5 CockpitからのD-Bus利用
    第15章 systemd-resolved
        15.1 名前解決サービスsystemd-resolved
        15.2 systemd-resolvedの概要
        15.3 systemd-resolvedを利用しない場合
        15.4 systemd-resolvedを利用する場合
        15.5 DNS設定変更を行うアプリケーション
        15.6 systemd-resolvedの名前解決設定
        15.7 Synthetic records
        15.8 名前解決の優先順位づけ
    第16章 systemdのその他の機能
        16.1 ここまでに扱ったトピック
        16.2 systemd-networkd
        16.3 その他の機能