【システムディー】

systemd とは?

最終更新:
💡 Linuxのサービスを、定義と依存関係で管理するまとめ役

systemdは、Linuxのシステムとサービスを管理する仕組みです。PID 1としての役割、ユニット、systemctlの起動と自動起動の違い、ログ・タイマーとの関係を説明します。

📌 このページのポイント
サービスを定義して、管理するsystemdinitとして使うとPID 1.service記録journald.timersystemctlの操作を区別start:今、起動するenable:起動時などの設定へ組み込む必要な依存関係と、起動順序は別
systemdをinitとして使う構成の例。サービスはユニットの定義と依存関係に沿って管理します。
ひよこ ひよこ
Linuxの起動に関係するの?
ペンギン先生 ペンギン先生
systemdをinitとして使う構成では、PID 1としてユーザー空間のサービスを起動し、管理するよ。ログインしたユーザー用の管理プロセスもある。すべてのLinuxがsystemdを使うわけではないし、すべてのプログラムが直接管理対象という意味でもないね。
ひよこ ひよこ
ユニットは、サービスの定義書?
ペンギン先生 ペンギン先生
サービスの.serviceだけでなく、タイマーの.timer、マウントの.mount、まとめる.targetなどがあるよ。ユニットファイルはINI形式に似た設定を使う。管理者の設定を置く/etc/systemd/system/など、読まれる場所や優先順位も決まっているんだ。
ひよこ ひよこ
enableすれば、その場で起動する?
ペンギン先生 ペンギン先生
startは今起動する操作、enableは設定に基づいて起動時などに組み込む操作だよ。enableだけでは、その場で起動しない。両方行うenable --nowもある。たとえば存在するnginx.serviceに対して「systemctl start nginx.service」で起動できるけれど、対象と権限を確認しよう。
ひよこ ひよこ
依存関係があれば、起動順も自動で分かる?
ペンギン先生 ペンギン先生
必要なユニットを起動する関係と、順序は別の設定だよ。RequiresやWantsと、AfterやBeforeを区別する。順序の依存がない対象は同時に起動できるけれど、起動時間はサービスや構成で変わる。従来より必ず速い、とは言い切れないね。
ひよこ ひよこ
ログや定期実行も、全部同じプログラム?
ペンギン先生 ペンギン先生
関連する仕組みとしてjournaldでログを扱い、journalctlで読むことができる。.timerは条件に沿ってユニットを起動するよ。サービスの再起動も設定によるので、障害時に必ず自動復旧するわけではない。statusやログで状態を見て、使う機能の設定を確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「systemd」って出てきたら「Linuxのシステムとサービスを管理する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「systemd」 = システム管理デーモンの名前
💬 末尾のdはdaemon(デーモン)を連想させる名前だよ。表記はsystemdで、先頭を大文字にはしない。

参考資料

← 用語集にもどる