パンダのメモ帳

技術系のネタをゆるゆると

CentOS 5.4で不要なサービスを停止する

CentOS 5.4で不要なサービスを無効にすることで、限りあるリソースを有効に使う。

1. 有効になっているサービスを確認する

有効になっているサービスを確認するには以下のコマンドを実行すればよい。

[root@localhost ~]# chkconfig --list | grep 3:on

これはランレベルが 3 の場合。異なるランレベルのサービスについては 3:on の部分を 4:on などに変えればOK。

2. 不要な場合があるサービス

以下のサービスは多くの場合に不要とされるサービスなので、特に理由がない限りOFFにして構わないと言われているが、あくまで止める場合は自己責任で。

SELinux関連

SELinuxを使わないならOFFで構わない。逆に、SELinuxを使う場合はOFFにしないこと。

サービス名 説明
auditd SELinuxのログを記録するサービス。
mcstrans MLS/MCSラベルを変換してくれるサービス。
restorecond ファイルやパスにラベルを付与するサービス。
NFS,NIS関連

NFSを使用しない場合はOFFで構わないっぽい。

サービス名 説明
netfs NFSクライアント。
nfslock NFSでファイルロックを行う。
portmap RPC接続をTCPのポートにマッピングするサービス。
rpcgssd NFSクライアントに比較的セキュアなRPC通信を提供するサービス……らしい。
rpcidmapd RPC通信に使われるIDマッパー。
Bluetooth関連

Bluetoothを使わないならOFFで構わない。

サービス名 説明
bluetooth Bluetoothに関する機能を提供するサービス。
hidd BluetoothのHIDプロトコルに関するデーモン。
電源関連

主に電源ボタンでシャットダウンしたい人用。サーバーの場合はOFFで構わない。

サービス名 説明
acpid 電源管理規格ACPIに関する機能を提供する。
apmd 電源管理規格APMに関する機能を提供する。
その他

その他、場合によりOFFにして構わないサービス。

サービス名 説明
anacron マシンが停止状態の間に実行するはずだったタスクを実行できるcronもどき。特に必要なければOFFで構わない。
avahi-daemon mDNSサービスを提供するデーモン。LAN内にMacがなければOFFで構わない……はず。
cpuspeed 負荷に応じてCPU周波数を動的に変更するサービス。消費電力等を気にしないのであればOFFで構わない。
cups 印刷機能を提供するサービス。プリンタを繋げないのであればOFFで構わない。
gpm コンソール用マウスサーバー。コンソール上でマウスを使わないのであればOFFで構わない。
mdmonitor ソフトウェアRAIDの監視を行うサービス。CentOS標準のソフトウェアRAIDを使用しない場合、OFFで構わない。
pcscd スマートカード関連のサービス。スマートカードを使わない場合は不要。
irqbalance マルチCPU環境で効率的な処理分散を行うためのサービス。マルチCPU環境でなければOFFで構わない。
ip6tables IPv6用ネットワークフィルタ。IPv6を無効にする場合はOFFで構わない。
rawdevices Rawデバイスを扱うためのサービス。なくて困った、という話は聞いたことがない。
xfs X用フォントサーバー。GUIを使わない限り不要。
yum-updatesd yumの自動更新サービス。yum-cronを導入している場合は不要。

3. 必要なサービス

以下のサービスは多くの場合に必要とされるサービスなので、自信がない限りONのままにしておくことを推奨する。

サービス名 説明
atd atコマンドで指定された処理を行うサービス。atコマンドは一般的なコマンドなのでOFFにすると困る場合がある。
autofs オートマウント処理を行うサービス。OFFにすると思わぬ時にハマってしまう事がありそう。
crond Windowsで言うところのタスクスケジューラ。様々なシステムが依存している。
haldaemon リアルタイムハードウェア情報収集サービス。OFFにすると思わぬ時にハマってしまう事がありそう。
iptables IPv4用ネットワークフィルタ。全裸でネットワークの海に飛び込む自信がない限り、ON推奨。
kudzu 起動時のハードウェア自動認識を行うサービス。
lvm2-monitor LVM関連サービス。パーティション構成にLVMが含まれていない場合はOFFで構わないが、まずそんなことはない。
messagebus D-BUS通信と呼ばれるアプリケーション間のメッセージ交換を提供する。多用されているらしい。
microcode_ctl Intel IA32 プロセッサのマイクロコードユーティリティ。
network 起動時にネットワークインターフェースを初期化する。
readahead_early システムやサービスに必要なファイルを先読みする。
sendmail ご存じ元祖MTA。止めてしまうとメールが一切やりとりされなくなる。OFFにするのはPostfix等を導入してから。
smartd HDDの障害予測を行う。使いこなすのは難しいらしいがOFFにするのも怖いよね。
sshd SSHデーモン。SSHを全く使わないならばOFFにしても構わない。
syslog ログ管理デーモン。OFFにしないこと。

4. 実際にサービスを停止する

調査の結果、今回は以下のサービスを停止することにした。

  • acpid
  • anacron
  • apmd
  • auditd
  • avahi-daemon
  • bluetooth
  • cpuspeed
  • cups
  • gpm
  • hidd
  • ip6tables
  • irqbalance
  • mcstrans
  • mdmonitor
  • netfs
  • nfslock
  • pcscd
  • portmap
  • rawdevices
  • restorecond
  • rpcgssd
  • rpcidmapd
  • xfs

service コマンドで実行中のサービスを停止し、chkconfig コマンドで次回から起動時に実行されないように設定する。以下、acpidを停止する場合の例。

[root@localhost ~]# service acpid stop
acpi デーモンを停止中:                                     [  OK  ]
[root@localhost ~]# chkconfig acpid off

いちいち実行するのが面倒な場合は以下の様にシェルスクリプトを作成し、実行してもよい。

#!/bin/sh
while read SERVICE
do
  service $SERVICE stop
  chkconfig $SERVICE off
done << __EOL__
acpid
anacron
apmd
auditd
avahi-daemon
bluetooth
cpuspeed
cups
gpm
hidd
ip6tables
irqbalance
mcstrans
mdmonitor
netfs
nfslock
pcscd
portmap
rawdevices
restorecond
rpcgssd
rpcidmapd
xfs
__EOL__

最後に、最初と同じコマンドで起動時に実行されるサービスの一覧を確認する。今回作業したサーバーではこんなカンジ。

[root@localhost ~]# chkconfig --list | grep 3:on
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
kudzu           0:off   1:off   2:off   3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
messagebus      0:off   1:off   2:off   3:on    4:on    5:on    6:off
microcode_ctl   0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
readahead_early 0:off   1:off   2:on    3:on    4:on    5:on    6:off
sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off
smartd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
yum-cron        0:off   1:off   2:on    3:on    4:on    5:on    6:off

作業前に比べてかなりすっきりした。

5. 参考URL

この記事を書くにあたって、以下のページを参考にした。