Linuxでは、システムが必要とするプロセスやサーバープロセスなどを、バックグラウンドで常駐さておきます。
このような常駐プログラムを、”デーモン=daemon”と呼びます。
これらのデーモンはバックグラウンドで待機していて、ユーザーからの要求に応じて処理を行います。
例えば、WebサーバーならばApacheをいうデーモンが常時待機していて、Webサイトの閲覧などの要求があった場合に処理を行うといった感じです。
Vine Linuxをインストールした直後でも、いくつかのデーモンが起動しています。
ここで、自分の用途に必要のないデーモンを停止することにより、セキュリティを高めたり負荷を軽減したりする事ができます。
デーモンは以下のようなコマンドで起動/停止を行います。
ここでは、FTPデーモンであるproftpdの起動/停止を例に挙げます。
# /etc/rc.d/init.d/proftpd start
# ProFTPdを起動中: [ OK ]
上記のように入力すると、起動メッセージが表示されます。
コマンド中の/etc/rc.d/init.d/ の部分は、デーモンが置かれているディレクトリのパスを示しています。
同様に、proftpdを停止したい場合には以下のように入力します。
# /etc/rc.d/init.d/proftpd stop
# ProFTPdを停止中: [ OK ]
また、デーモンを再起動する場合には次のように入力します。
デーモンに関わるファイル等を編集した場合には、設定を反映させるためにデーモンを再起動する必要があります。
# /etc/rc.d/init.d/proftpd restart
# ProFTPdを停止中: [ OK ]
# ProFTPdを起動中: [ OK ]
デーモンの名前が分からない場合や、デーモンのリストを見たい場合には、以下のようなコマンドで、リストが表示されます。
あるいは、/etc/rc.d/init.d/ と入力した時点でTab キーを押せば、シェルの補間機能でデーモンの一覧が表示されます。
# ls /etc/rc.d/init.d/
acpid* cpufreqd* halt* named* portmap* syslog*
adsl* crond* httpd* netfs* postfix* vncserver*
anacron* cups* inet* network* proftpd* xfs*
apmd* fam* iptables* nfs* random* ypbind*
atd* functions* keytable* nfslock* rawdevices*
autofs* functions.bootsplash* killall* nscd* saslauthd*
canna* functions.noloadi18n* kudzu* ntpd* single*
ccpd* gpm* murasaki* pcmcia* sshd*
起動中のデーモンを確認するには、次のようにps コマンドにオプションを付けて入力します。
# ps -aux
入力すると、起動しているサービスの一覧が表示されます。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 1508 456 ? S Jul07 0:06 init
root 2 0.0 0.0 0 0 ? SW Jul07 0:00 keventd
root 3 0.0 0.0 0 0 ? SW Jul07 0:00 kapmd
root 4 0.0 0.0 0 0 ? SWN Jul07 0:00 ksoftirqd_CPU0
root 5 0.0 0.0 0 0 ? SW Jul07 0:01 kswapd
root 6 0.0 0.0 0 0 ? SW Jul07 0:00 bdflush
root 7 0.0 0.0 0 0 ? SW Jul07 0:00 kupdated
root 9 0.0 0.0 0 0 ? SW Jul07 0:00 mdrecoveryd
root 8 0.0 0.0 0 0 ? SW Jul07 0:00 khubd
root 17 0.0 0.0 0 0 ? SW Jul07 0:01 kjournald
root 207 0.0 0.0 0 0 ? SW Jul07 0:00 kjournald
root 539 0.0 0.4 1568 532 ? S Jul07 0:00 syslogd
root 545 0.0 0.3 1512 380 ? S Jul07 0:00 klogd
root 563 0.0 0.4 1528 508 ? S Jul07 0:05 cpufreqd
root 594 0.0 1.0 3292 1220 ? S Jul07 0:00 sshd
xfs 711 0.0 4.9 9176 5884 ? S Jul07 0:09 xfs
root 728 0.0 0.4 1876 588 ? S Jul07 0:00 cannaserver
root 744 0.0 0.3 1492 364 tty1 S Jul07 0:00 mingetty
root 745 0.0 0.3 1492 364 tty2 S Jul07 0:00 mingetty
root 746 0.0 0.3 1492 364 tty3 S Jul07 0:00 mingetty
root 747 0.0 0.3 1492 364 tty4 S Jul07 0:00 mingetty
root 748 0.0 0.3 1492 364 tty5 S Jul07 0:00 mingetty
root 749 0.0 0.3 1492 364 tty6 S Jul07 0:00 mingetty
root 1822 0.0 1.4 5880 1664 ? S 11:03 0:00 sshd
root 1846 0.0 0.7 5056 932 pts/0 S 11:03 0:00 su
root 1847 0.0 1.1 5248 1380 pts/0 S 11:03 0:00 bash
root 1953 0.0 0.6 2732 732 pts/0 R 11:17 0:00 ps
PIDというのは、プロセスIDです。PID594を見るとCOMMANDのところにsshdとあります。
これは、sshdがプロセスID594で起動している事を表しています。
また、デーモンによっては、複数のプロセスが起動しているものもあります。
デーモンの起動/停止は上記のように手動で行えますが、システムの起動と同時にデーモンを起動することもできます。
システムの起動時に特定のデーモンが起動しないようにしておけば、電源を入れるたびにコマンドでデーモンを起動/停止させる手間が省けます。
頻繁に使うデーモンは起動時に開始されるように設定しておく方が楽です。
このように、デーモンの起動をシステムの起動時に行うように設定するツールとして、”ntsysv”があります。
ルート権限で、次のようなコマンドで実行できます。
# ntsysv
入力すると、設定用の画面が表示されます。
上下とTabキーでカーソルを移動し、スペースキーで”*”のチェックをします。
空欄に”*”が入っているデーモンは、システムの起動と同時に実行される設定になります。
デーモンの設定を行った後は、設定を反映させるためにシステムを再起動する必要があります。
ただし、このntsysv で編集したデーモンの設定は、そのランレベルでしか反映されません。
ランレベルを変更した場合には、ntsysv で再設定しなおすか、設定ファイルを直接編集します。
これは、次のようにデーモンが管理されているからです。
Vine Linuxにおいて、起動時に実行されるデーモンは、/etc/rc.d/ ディレクトリ以下に収められていて、各ランレベル毎に管理されています。
従って、システム起動時に実行されるデーモンは、ランレベル毎に設定が異なるので注意が必要です。
# ls /etc/rc.d/
とコマンドを入力すれば、
init.d/ rc.local* rc0.d/ rc2.d/ rc4.d/ rc6.d/
rc* rc.sysinit* rc1.d/ rc3.d/ rc5.d/
と表示されます。
このrc0.d/〜rc6.d/のディレクトリに起動時に実行するスクリプトが格納されています。
例えば、自分のランレベルが3の場合には、/etc/rc.d/rc3.d/ に設定が保存されています。
以下のようなコマンドで、デーモンの一覧が表示されます。
他のランレベルの場合には、rc3.d の所を適宜置き換えたください。
# ls /etc/rc.d/rc3.d/
K01adsl@ K30postfix@ K74ntpd@ K96pcmcia@ S75keytable@
K05anacron@ K35vncserver@ K75netfs@ K99murasaki@ S85httpd@
K05atd@ K44rawdevices@ K80random@ S08iptables@ S90fam@
K05saslauthd@ K45named@ K82autofs@ S10network@ S90xfs@
K10cups@ K50inet@ K83ypbind@ S12syslog@ S92canna@
K15gpm@ K60crond@ K86nfslock@ S27cpufreqd@ S99local@
K15proftpd@ K74apmd@ K87portmap@ S44acpid@
K20nfs@ K74nscd@ K95kudzu@ S55sshd@
ここで、各デーモンの名前の前に”K”や”S”のアルファベッドが付いています。
このアルファベッドが、システム起動時にデーモンを起動させるか否かの設定を表します。
”S”なら起動、”K”なら起動しないといった事を意味します。
この部分をvi エディタ等で”S”を”K”にするなどと編集する事ができます。
デーモンの設定を行った後は、設定を反映させるためにシステムを再起動する必要があります。
起動サービスの管理は、ntsysvで行える事は先に示した通りですが、ntsysvでは起動中のランレベルにおける設定しか行えません。
他のランレベルにおけるサービスの設定を行うには、ファイルを編集する他にも”chkconfig”というコマンドがあります。
このchkconfigでは、すべてのランレベルにおけるサービスを一覧を表示しながら設定できる便利なコマンドです。
chkconfigの使用法とオプションは以下のようになっています。
chkconfig のオプション
コマンド |
意味 |
chkconfig -h |
chkconfigのヘルプを表示する |
chkconfig --list |
サービスの一覧を表示する |
chkconfig --list |grep <on | off> |
サービスの一覧をグループを指定して表示する |
chkconfig --level <ランレベル> <サービス名> <on | off > |
サービスの起動/停止を追加する |
例えば、以下のようにしてサービスの一覧を表示できます。
# chkconfig --list
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
adsl 0:off 1:off 2:off 3:off 4:off 5:off 6:off
anacron 0:off 1:off 2:off 3:off 4:off 5:off 6:off
apmd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:on 1:on 2:on 3:on 4:on 5:on 6:on
canna 0:off 1:off 2:off 3:off 4:off 5:on 6:off
・
・
・
このように、--list オプションですべてのランレベルと起動デーモンの一覧が表示されます。
また、次のようなコマンドでランレベルに対応したデーモンのon/off を変更できます。
次のコマンドでは、ランレベル3と5のadsl デーモンがon になります。
# chkconfig --level 35 adsl on
デーモンの設定を行った後は、設定を反映させるためにシステムを再起動する必要があります。
Vine Linux3.1に収録されているデーモンのリストを簡単にまとめました。
不要なデーモンはできるだけ起動させず、自分の環境に必要なデーモンだけを起動するように設定を行うことが望ましいと思います。
尚、設定例はあくまで設定例です。
実際の設定は自分の使用目的に合わせて調整します。
デーモンリスト
デーモン名 |
役割 |
設定例 |
備考 |
acpid |
電源管理を行う |
|
ACPI対応のマザーボードが必要 |
adsl |
PPPoEで接続する |
* |
ADSLなどでルータを経由しない場合は必要 |
anacron |
タスクスケジューラ |
|
|
apmd |
APMのユーティリティ |
|
ノートPC以外は不要 |
atd |
指定時刻にコマンドを実行する |
|
|
autofs |
ファイルシステムの自動マウント/アンマウント |
* |
CDなどを自動でマウントしたい場合は必要 |
canna |
日本語入力システム |
* |
日本語入力を使用しない場合は不要 |
cpufreqd |
CPUを管理する |
|
|
crond |
指定時刻にデーモンを実行するスケジューラ |
|
|
cups |
印刷システム |
* |
印刷する場合に必要 |
fam |
ファイルシステムを監視する |
|
|
gpm |
コンソール用のマウスドライバ |
|
|
httpd |
Webサーバーのサービスを提供する |
|
Webサーバーの公開するに必要 |
inet |
スーパーサーバー |
|
|
iptables |
パケットフィルタ |
* |
|
keytable |
キーボードの設定を変更するプログラム |
|
|
kudzu |
ハードウェアをPC起動時に検出する |
|
ハードウェアを頻繁に変更する場合に必要 |
murasaki |
USBやIEEE1394などのマウント/アンマウント |
* |
USBメモリ自動マウントする場合に必要 |
named |
DNSサーバー |
|
DNSサーバーを公開する場合に必要 |
netfs |
ネットワークファイルをマウントする |
|
|
network |
起動時にネットワーク接続を有効にする |
* |
|
nfs |
NFSサーバー |
|
|
nfslock |
NFSサーバーのファイルロックデーモン |
|
|
nscd |
ネームサービスのファイル情報をキャッシュする |
|
|
ntpd |
NTPを利用して時刻の同期をとる |
|
|
pcmcia |
PCカードのドライバを読み込む |
|
|
portmap |
RPC接続を管理する |
|
|
postfix |
メール転送サーバー |
|
|
proftpd |
FTPサーバー |
|
FTPサービスを提供する場合に必要 |
random |
乱数発生プログラム |
|
|
rawdevoces |
RAWデバイスのマウント |
|
|
rsync |
リモートホスト上のファイルと同期をとる |
|
|
saslauthd |
sasl認証 |
|
|
sshd |
SSHサーバー |
|
SSHサービスの提供に必要 |
syslog |
システムログを管理する |
* |
|
xfs |
Xフォントサーバー |
* |
X を使用しない場合には不要 |
ypbind |
NISクライアント |
|
|