デーモン

読み:デーモン
外語:daemon 英語
品詞:名詞

バックグラウンドで動作するプログラムのこと。こういったプロセスを「デーモンプロセス」という。

目次

その機能から、時にサーバーとも呼ばれることがあるが、内部の刺激で動作するものは特にデーモンといい、これをサーバーとはあまり言わない。

デーモンという表現であれば、その両方を指すことができる。

オペレーティングシステム(OS)や場合によっては「ドライバー」と呼ばれることもあるが、ドライバーが必ずしもデーモンであるとは限らない。カーネルに組み込まれることもあるからである。

主なデーモン

例えばWebサーバーとして機能しているhttpd(HTTPデーモン)や、FTPサーバーとして機能しているftpd(FTPデーモン)のようなものがある。

日常、よく世話になっているデーモンに、次のようなものがある。

デーモンは、名前(例えばプロトコル名)の最後に「d」を付けて表わすのが慣わしとなっている。

デーモン≠悪魔

デーモンは英語でdaemonと書く。daemonは日本では「デーモン」と読まれる単語だが、「何かやろうとした時出てくる便利な奴」という意味を込めて、あえて「ドラえもん」と茶化して読む人もいる。

そんなデーモンには二種類があるらしい。

ここでいうデーモンは前者daemonであり、「(人知れず仕事をしてくれる、便利な)小人さん」という意味で用いられる。

ちなみにBSDのマスコットキャラは、正式名称は無いらしいが一般に「BSDデーモン」(BSD Daemon)と呼ばれている。名前の由来は当然、このデーモンプロセスのデーモンである。トライデント(三叉の鉾)を持つなど守護神を意識してはいるが、その容姿から、やはり悪魔と俗称される。某ライバルOSのペンギンと違って可愛らしさが無い、などと言われているとかいないとか。

作成方法

デーモンプロセスといえども、一般にはアプリケーションプログラムと同様に起動される。これを、バックグラウンドで動作させるようにする処理が必要である。

UNIXではこれが簡単で、プログラムはfork()し、その後親プロセスを終了させるだけで、基本的には完了する。あとは、必要な設定等を随時行なうことになる。inetdから呼ばれる場合は不要だが、さもなくば、一般的には次のような手順を踏むことになる。

  1. fork()して、親プロセスを終了させる。こうすると、シェルに制御が戻る。
  2. setsid()により、プロセスグループとセッショングループのリーダーになる。
  3. 再びfork()し、親プロセス(セッショングループリーダー)を終了させる。
  4. chdir("/")し、どのディレクトリも使用中でないことを明確にする。これを忘れると、ファイルシステムのアンマウントが出来なくなることがある。
  5. umask(0)して、以降作成されるあらゆるファイルを支配下に置く。
  6. ファイルディスクリプターの0、1、2をclose()する。親プロセスから引き継いだ、リダイレクト先不明の標準入出力は使用しない。
  7. stdin、stdout、stderrは、自分で新しいディスクリプターとしてopen()する。

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club