多くの Linux ディストリビューションでは、わたしたちのほとんどが使いもしない ようなデーモンが起動するようになっています。そうしたデーモンの大部分は、 スクリプトによってロードされています。ただ、そのスクリプトの名前や置かれている 位置は、ディストリビューションによって異なっています。Slackware の場合だと、 セットアップスクリプトは /etc/rc.d/rc.* にあります (訳注:Red Hat/Caldera/Debian でのデーモンの止め方は、日本語訳について をご覧ください)。
ここからの説明においては、Unix シェルスクリプト・プログラミングの知識があると 非常に役に立ちます。とはいえ、Unix シェルスクリプトを書いたことがないひとの ために、以下に簡単ではありますが、シェルスクリプトの紹介をしようと思います。
次のシェルスクリプトをご覧ください。
#!/bin/sh echo "hello world" #echo "good bye cruel world" |
上記のコードは、"hello world" という文字列を表示するものです。シェルスクリプト には、まず次のような記述が、最初の行の先頭に含まれていなければなりません。
#!/bin/sh |
それに続くすべての行では、実行に先立ってあらかじめキーボード上で打ち込んで おいたコマンドがそのまま一行づつ実行されます(良くできたキーボードマクロの ようなものと考えてください)。
'#' で始まる行は、シェルによって実行されないので、コメントとなります。 デーモンをロードする場合、起動スクリプトのほとんどは次のようなかたちに なっています。
if somecondition do something fi |
必要なのは、次の記述で始まり、
if |
次の記述で終わる行、
fi |
こうした行をすべてコメントアウトすることです。
特定のデーモンがどこで起動されているか知りたい場合は、そのデーモンの名前を 初期化スクリプト内で探してください。たとえば、inetd が Slackware のどこからロードされるのか知りたい場合、わたしなら次のように します。
$ cd /etc/rc.d $grep -n inetd rc.* |
inetd は、telnet や ftp コマンドを使ったり、あなたのマシンに talk リクエストを送ったりできるようにするデーモンです。自分のマシンをサーバとして 使ったり、リモートでアクセスしたりする必要がないなら、inetd は削除してかまいません。
lpd は、lpr コマンドを使って、 ファイルをプリンタで印刷する際に使用します。お手元の Linux で印刷をしない場合 は、lpd を削除してかまいません。ただ、もしお使いの プリンターが HP Deskjet ™ プリンタであり、それで印刷をするのであれば、 dj-printcap というパッケージをおすすめします。このパッケージは以下の場所で 入手できます。
ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz
これらふたつのデーモンは、NFS サーバを稼働させる際に使用します。お使いの Linux システムを NFS サーバとして利用しないのであれば、このふたつのデーモンは 削除したほうが安全です。
portmap デーモンは、RPC サービスを処理する際に 使用します。NFS サーバやその多の RPC プログラムを稼働させないなら、 portmap は削除してかまいません。
sendmail もかなり多くのメモリを消費するデーモン です。お手元の Linux で送信メールを中継したり、送信されたメールを手元の Linux で直接受信したりしないのであれば、sendmail は 削除してかまわないでしょう。手元の Linux からメールを送信する場合は、たいてい (プロバイダ等が提供する)別のメールサーバを使ってメール送信が可能なように、 メールクライアントを設定できるようになっています。
システム上で起動されるデーモンのなかには、他にも不必要なものがあると思います。 不要だと思ったら削除してしまいましょう。削除してはいけないデーモンは、 syslogd と klogd の ふたつです。