PC の起動から常に実行状態でシステムに待機 (常駐) し、自動で定期的に処理を実行したり、サーバーとしてクライアントの要求に対してサービスを提供するためのプログラムの事です。
システムに必要のない余計なデーモンが起動していると
といったことがあるのでシステムに必要がないデーモンの起動は止めておきましょう。
デーモンの起動スクリプトは通常/etc/rc.dにありますが、特に理由がなければディストリビューション付属のツールを使って設定しましょう。
デーモンの起動設定は次のツールで行うことができます。
OS の起動・終了時に実行する処理を段階ごとに分類する仕組み。
SysV系UNIX互換のディストリビューション (Red Hat/Slackware系) での標準的なランレベルの設定は以下のとおり:
ランレベル | 説明 |
0 | 停止 |
1 | シングルユーザモード |
2 | マルチユーザモード(ネットワークなし) |
3 | マルチユーザモード(ネットワークあり) |
4 | 未使用 |
5 | マルチユーザモード(GUIログイン) |
6 | 再起動 |
Red Hat系では /usr/sbin/chkconfig --list と実行すれば設定が表示される。(*1)
ランレベルの配置は /etc/rc.d で決まっていて、起動・終了時に init が /etc/inittab の設定をみて実行します。
なので、普段使うランレベルを変更したい時は /etc/inittab を編集しましょう。
ディストリビューションによって /etc 直下にあったり /etc/rc.d にあったりという違いはあるものの、大まかに言えば
たとえば Apache を起動させたければ
/etc/rc.d/init.d/apache start
とか。stop と restart で停止/再起動。
夜中に勝手にハードディスクがガリガリガリガリ。うぉ、まさかクラッカーに乗っ取られたのか!?
大抵の場合、夜中に cron デーモン (特定の処理を定期的に実行するデーモン) によって locate コマンドのためのデータベースを更新する作業 (updatedb) が行われています。
停止するには root の crontab を編集して cron の設定を変更します。ただし、その時点から locate コマンドが新しいファイルを探せなくなってしまうので、locate を使う場合は手動で updatedb を実行しましょう。
/var/spool/cron/crontabs に ユーザ名.new というファイルが残っていませんか? 削除してから編集し直してみましょう。
inetdはスーパーサーバと呼ばれるソフトウェア。
デーモンは通常、それぞれ起動してポートへの接続を待機するが、あまり使われないデーモンだと、ポートの数だけ待機するのに無駄がある。
そのため、デーモンとして常にひとつだけ起動しておいて、ポートへの接続が来た段階で担当のデーモンを起動するスーパーサーバと呼ばれるデーモンが作られた。
ただし、httpdのようにたくさんのリクエストが来るデーモンの場合、inetdで管理するのは必ずしも適切ではない。あくまで、あまり使われないが常駐する必要のある雑多なデーモンのための仕組み。
この設定変更は、Mandriva コントロールセンターより行えます。具体的には、デスクトップのパネルメニューより [アプリケーション] > [システム] . [コンピューターを設定] > [システムサービス] より、任意のサービスを選択して変更ができます。
Mandriva Linux 10.1 Memo というサイトでは、サーバーの運用に関連した実用的な情報が公開されているので大変参考になるでしょう。
*1 Debian や Gentoo などではランレベルの配置が若干異なります。