はじめる人のびぎねっと。

プライバシーポリシー

読み物

Linux基礎

デーモンとは?

デーモンは,LinuxやUNIXにおいてメモリ上に常駐して様々なサービスを提供するプロセスを指します。

デーモンプロセスは処理要求を待ち続け,要求があると自分自身をコピーしたプロセスを作り,コピーしたプロセスに処理を実行させます。

デーモンの意味は,悪魔の「demon」ではなく守護神の「daemon」です。そのため,デーモンとして動作するプログラムは,伝統的にプログラムファイル名(プロセス名)の最後に「d」が付けられています。ただし,最後に「d」が付いていないものでもデーモンとして動作するものもあります。

ファイルシステム,メールの送受信,印刷,Webサーバなどの機能がシステム内に配置されたデーモンによって行われています。

デーモンの事前起動

Webサーバなどのように,同時にたくさんの処理を行わなくてはならない場合,クライアントから要求があってから子プロセスを生成すると対応に時間がかかってしまいます。

そこでWebサーバはあらかじめクライアントから要求がくる前に,複数の子プロセスを生成しておきます。クライアントから接続要求がくると,事前に生成しておいた子プロセスに処理を行わせます。事前に起動しておくことで,サーバ側での処理を早くすることができます。

デーモンは必要に応じてプロセスを生成するので,要求が多い場合にはその数だけデーモンの子プロセスが必要になります。しかし,プロセスの数が増えると,Linuxカーネルがそれらのプロセスの切り替えに手間取るようになるため,逆に処理速度が低下してしまいます。子プロセスを事前にいくつ生成するか設定を確認する必要があります。

デーモンは常時動いているプロセスなのでたくさんのデーモンがシステムは負荷が大きく処理に時間がかかることになります。システムを快適に動かすためにも,必要なデーモンだけを動かす必要があります。

スーパーデーモン

デーモンの中には,スーパーデーモンと呼ばれるものがあります。スーパーデーモンは通常のデーモンと同じように要求を待ち続けるのですが,要求の種類に応じて生成する子プロセスの種類を変更します。

常にたくさんのデーモンが動いていると負荷が大きく処理に時間がかかってしまいます。しかしスーパーデーモンは,telnetの処理要求があった場合にはtelnetサーバデーモンを起動し,FTPアクセス要求があった場合にはFTPデーモンを起動し処理を行います。

スーパーデーモンを使用することで必要のないデーモンを起動しておく必要がなくなり,コンピュータにかかる負荷を減らすことができます。

このページのTOPへ