【でーもん】

デーモン とは?

最終更新:
💡 画面の操作を待たず、裏側でサービスを提供するプロセス

バックグラウンドでサービスを提供するプロセス。常時起動と必要時の起動、systemdのstartとenable、Windowsサービスとの関係を初心者向けに解説します。

📌 このページのポイント
デーモン:裏側でサービスを提供利用者・他のプログラムWebページを要求サービスを担うプロセス要求に応じて処理要求結果例:Webページの内容を返す起動中も要求やイベントを待つ場合常時起動だけでなく、必要時の起動もある
要求と結果のやり取りの例です。画面の操作を待たずサービスを提供し、起動方法や内部のプロセス構成はサービスによって異なります。
ひよこ ひよこ
操作画面を開いていないのに、サーバーが返事するのはなぜ?
ペンギン先生 ペンギン先生
裏側でサービスを提供するプロセスが動いているからだよ。Unix系では、こうしたプロセスをデーモンと呼ぶ。ネットワークからの要求を受けたり、システムを管理したりする役割がある。
ひよこ ひよこ
ずっと計算を続けているの?
ペンギン先生 ペンギン先生
起動中でも、要求やイベントを待っている場合があるよ。また、必ず起動時から常駐するとは限らない。systemdでは通信や機器の接続などをきっかけに、必要なサービスを起動する方式もある。
ひよこ ひよこ
Webサーバーもその例?
ペンギン先生 ペンギン先生
そうだね。例えばnginxでは、設定を扱うマスタープロセスと、要求を処理するワーカープロセスがある。nginxもApacheも一律にhttpdという名前で動く、というわけではないよ。
ひよこ ひよこ
systemctlのstartとenableは、どう違う?
ペンギン先生 ペンギン先生
startはサービスを今起動する操作。enableは設定に従って自動起動などに必要な関連付けを作る操作で、それだけでは今起動しない。両方を行うenable --nowもある。対象のサービスや設定を確かめて使おう。
ひよこ ひよこ
Windowsにも同じ役割がある?
ペンギン先生 ペンギン先生
Windowsサービスが似た役割を担うよ。ただし管理の仕組みは同一ではなく、Windowsではサービス制御マネージャーが起動や停止などを管理する。自動起動や、イベントに応じて起動するサービスもある。
もっと詳しく知りたい人へ

バックグラウンドで動くプログラムは、すべてデーモン?

単に画面に出ないことだけで分類するわけではありません。一回で終わる処理や、アプリ専用の裏側の作業もあります。システムや他のプロセスにサービスを提供する役割と、起動・終了の管理方法を確認すると区別しやすくなります。

systemdで管理するプログラムも、自分で裏側に移る必要がある?

systemd向けの新しい方式では、プログラム自身が従来のようにプロセスを分岐して端末から切り離す処理は不要です。サービスマネージャーに管理を任せる設計が推奨されています。起動方式はサービスの実装とユニット設定を合わせて確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「デーモン」って出てきたら「裏側でサービスを提供するプロセス」と思えばだいたいOK!
📖 おまけ:英語の意味
「Daemon」 = バックグラウンドで機能を提供するサービスプロセス
💬 Unix系のシステムで使われる呼び方です。名前の末尾にdが付く例もありますが、必須の命名規則ではありません。

参考資料

← 用語集にもどる