4. デーモンプロセス

多くの 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.*

4.1. inetd

inetd は、telnetftp コマンドを使ったり、あなたのマシンに talk リクエストを送ったりできるようにするデーモンです。自分のマシンをサーバとして 使ったり、リモートでアクセスしたりする必要がないなら、inetd は削除してかまいません。

4.2. lpd

lpd は、lpr コマンドを使って、 ファイルをプリンタで印刷する際に使用します。お手元の Linux で印刷をしない場合 は、lpd を削除してかまいません。ただ、もしお使いの プリンターが HP Deskjet ™ プリンタであり、それで印刷をするのであれば、 dj-printcap というパッケージをおすすめします。このパッケージは以下の場所で 入手できます。

ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz

4.3. nfsdmountd

これらふたつのデーモンは、NFS サーバを稼働させる際に使用します。お使いの Linux システムを NFS サーバとして利用しないのであれば、このふたつのデーモンは 削除したほうが安全です。

4.4. portmap

portmap デーモンは、RPC サービスを処理する際に 使用します。NFS サーバやその多の RPC プログラムを稼働させないなら、 portmap は削除してかまいません。

4.5. sendmail

sendmail もかなり多くのメモリを消費するデーモン です。お手元の Linux で送信メールを中継したり、送信されたメールを手元の Linux で直接受信したりしないのであれば、sendmail は 削除してかまわないでしょう。手元の Linux からメールを送信する場合は、たいてい (プロバイダ等が提供する)別のメールサーバを使ってメール送信が可能なように、 メールクライアントを設定できるようになっています。

4.6. others

システム上で起動されるデーモンのなかには、他にも不必要なものがあると思います。 不要だと思ったら削除してしまいましょう。削除してはいけないデーモンは、 syslogdklogd の ふたつです。