systemdの思想と機能 Linuxを支えるシステム管理のためのソフトウェアスイート
書籍情報
発売日 : 2023年12月21日
著者/編集 : 森若 和雄
出版社 : 技術評論社
発行形態 : 単行本
ページ数 : 216p
書籍説明
内容紹介
systemd(システムディー)はLinuxの基本的な構成要素を提供するソフトウェア群です。システムやサービスの管理機能を中心として、ハードウェアの管理、ログの管理などを行う多数の独立したソフトウェアからなっています。Linuxでシステム管理を行うときにはsystemdの知識が必要になります。systemdに関するオンラインマニュアルなどは充実しているものの、systemdがどんな機能を提供しているかを知らなければ「どのドキュメントを読めばいいのか」「何を探すべきなのか」の見当がつかないでしょう。本書はsystemdの概要をつかみ、マニュアルなどを適切に参照できるようになることを目的としています。systemdの設定変更や、設定ファイル(unit file)の解釈/作成/変更、systemdが記録したログの読解などのシーンで役立つトピックを解説します。また、systemdの機能に対応するLinuxカーネルの機能を知ることができます。Red Hat Enterprise Linux 8と9を題材にして解説しますが、多くの内容は他のディストリビューション(Debian、Ubuntu、openSUSEなど)でも活用できます。※本書は雑誌『Software Design』の2021年6月号~2022年11月号に掲載された連載記事「systemd詳解」を再編集した書籍です。
目次
第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 その他の機能
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 その他の機能
著者情報
森若 和雄