デーモンは「裏方でずっと待機しているプログラム」
デーモン(daemon)は、画面に姿を見せずにコンピュータの裏側で動き続けるプログラムのことです。あなたが何か操作をしなくても勝手に起動していて、必要になったときだけ仕事をして、また静かに待機に戻ります。
例えるなら、ホテルのフロントスタッフのようなものです。宿泊客が部屋にいる間、フロントの人は何もしていないように見えます。でも実際は24時間カウンターに座っていて、「タクシーを呼んでほしい」と言われた瞬間に対応してくれる。呼ばれるまで待っていて、呼ばれたら動く。この「常駐して待ち受ける」性質がデーモンの本質です。
普通のプログラムとの違い
ふだん私たちが使うプログラム — テキストエディタやブラウザ — は、自分で起動して、使い終わったら閉じます。開始と終了がはっきりしていて、画面上に存在が見えます。
デーモンはその逆です。いつ起動したのか意識することがなく、終了させることもめったにない。画面もウィンドウも持たず、ログファイルにひっそりと記録を残すくらいです。
普通のアプリ
- ユーザーが起動する
- 画面がある
- 使い終わったら閉じる
- 操作されている間だけ動く
デーモン
- システムが自動で起動する
- 画面を持たない
- 基本的に動き続ける
- 呼ばれるまで待機している
身の回りにあるデーモンの例
Webサイトを表示するサーバーソフトも、リクエストが来るのをずっと待っている点でデーモンの一種です。ほかにも、定期的に決まった時刻に処理を走らせる仕組み、印刷の順番を管理する仕組み、ネットワークの接続を監視する仕組みなど、OSの土台部分の多くがデーモンとして動いています。
パソコンを起動してから何もしていないのにCPUがわずかに動いていたり、ファンが回ったりするのは、こうした裏方たちが仕事をしているからです。
名前の由来がちょっと面白い
「デーモン」と聞くと悪魔を連想しますが、由来はギリシャ神話の「ダイモン(daimon)」で、人に見えないところで働きかける精霊のような存在を指します。悪役というより「見えない働き手」というニュアンスですね。UNIX系のOSで使われ始めた用語で、そこからプログラムの世界に定着しました。
ちなみに慣習として、デーモンとして動くプログラムの名前には末尾に d が付くことが多いです。sshd、httpd のような名前を見かけたら、「ああ、これは裏で常駐しているやつだな」と見当がつきます。
なぜデーモンという形が必要なのか
「必要なときだけ起動すればいいのでは?」と思うかもしれません。実際、そういう作り方もあります。ただ、起動には時間もメモリの確保も必要です。1秒に何十回もリクエストが来るような場面で、そのたびにプログラムを立ち上げ直していたら、待たされてばかりで話になりません。
あらかじめ立ち上がって待機しておけば、依頼が来た瞬間に応答できます。レストランで注文が入ってからコックを雇いに行くのではなく、最初からキッチンに立っていてもらう、という発想です。
デーモンで困りやすいところ
裏で動いているということは、裏で壊れていても気づきにくいということでもあります。「サービスにつながらない」と思ったら、実はデーモンが止まっていた、というのはよくある話です。
画面がないぶん、状況を知る手がかりはログファイルとプロセス一覧に限られます。デーモンを扱うようになると、「動いているかどうかを確認する」「ログを読む」という作業が自然とセットになってきます。逆に言えば、この2つができれば怖がる必要はありません。
覚えておきたいポイント
デーモンは特別に難しい技術ではなく、「常駐して待ち受ける」という動き方の呼び名にすぎません。あなたが直接触るものではなくても、システムの土台を支えているのは大抵この静かな働き手たちです。名前を知っておくと、トラブル時の説明文やドキュメントがぐっと読みやすくなります。
このページは役に立ちましたか?