Software Design plusシリーズsystemdの思想と機能
Linuxを支えるシステム管理のためのソフトウェアスイート

[表紙]systemdの思想と機能 ―Linuxを支えるシステム管理のためのソフトウェアスイート

紙版発売
電子版発売

B5変形判/216ページ

定価3,080円(本体2,800円+税10%)

ISBN 978-4-297-13893-6

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

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詳解」を再編集した書籍です。

こんな方におすすめ

  • Linuxユーザー
  • Linuxシステム管理者

本書のサンプル

本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。

サンプル画像1

サンプル画像2

サンプル画像3

サンプル画像4

サンプル画像5

目次

第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 その他の機能

著者プロフィール

森若和雄(もりわかかずお)

レッドハット株式会社所属(2023年10月現在)の自称RHELおじさん。1976年生まれ。Linuxとの出会いは1996年から。

2007年の入社以来Red Hat Enterprise Linuxのプリセールスエンジニアとして技術支援および情報発信などに従事。サーバ仮想化に利用するXen,KVMや,Linuxカーネルのトレーニングの作成/実施,ファイルシステム実装の調査報告なども行いました。

systemdとのかかわりでは,当初,日常的にDebian,Fedora,RHELを扱っている中で,systemdにより幅広い設定や管理が統一されて感動しました。その後,スライド資料「systemdエッセンシャル」を作成/公開し,IT月刊誌『Software Design』に「systemd詳解」を連載。2023年からテクニカルサポート部門に異動したのちは,今まで以上にsystemdの知見が活用できています。本書にも各種のトラブル対応から得た知見をできるだけ反映しました。