Powered by SmartDoc

サービス

サービスとは

サービスとはLinux起動時に実行され、システム終了までバックグランドで動き続けるプログラムのことで、デーモン(daemon)やサーバとも言い、その名の通り、様々な機能を他のプログラムやユーザに提供する。稼働中のサービスはpsコマンドで確認できる。

プロセス一覧の表示
$ ps ax

サービスの起動設定

どのサービスを起動させるか否かは端末からはntsysv(図2.2.1[ntsysvコマンドの実行画面])あるいはchkconfig(図2.2.2[chkconfigの実行])コマンドで、GUIからはserviceconf(図2.2.3[serviceconfコマンドの実行画面])コマンドで設定する。serviceconfではサービスの起動や停止も制御できる。それぞれのコマンドの表示を示す。

ntsysvコマンドの実行画面
chkconfigの実行
# chkconfig --list
(中略)
xfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
yum-updatesd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
# 
serviceconfコマンドの実行画面

サービスはランレベルごとの起動と停止を設定でき、サービスの起動や停止はシェルスクリプトによって制御される。それらのファイルはディレクトリ/etc/rc.d内にランレベルごとのディレクトリ(rc0.d〜rc6.d)があり、その中に各サービスのシェルスクリプトへのシンボリックリンクが格納されている。各サービスのシェルスクリプトの実体はディレクトリ/etc/init.dにある。

各サービスへのシェルスクリプトへのシンボリックリンクの名前には次の2種類がある。??は二桁の数字が当てはまり、サービスの優先順位を示している。

K??サービス名
停止させるサービスのシンボリックリンク名
S??サービス名
起動させるサービスのシンボリックリンク名

/etc/rc5.dの内容の一部を示す(図2.2.4[/etc/rc5.dの内容(一部)])。

/etc/rc5.dの内容(一部)
K69rpcsvcgssd                S13mcstrans         S99local
K73ypbind                    S13portmap          S99smartd
K74nscd                      S14nfslock
K85mdmpd                     S15mdmonitor

サービスの起動と停止

サービスを端末から起動・停止させるにはサービスごとのシェルスクリプト、あるいはserviceコマンドを使う。使用例を図2.3.1[サービスの起動と停止]に示す。

サービスの起動と停止
サービスの開始
# /etc/init.d/サービス名 start
# service サービス名 start

サービスの停止
# /etc/init.d/サービス名 stop
# service サービス名 stop

演習

ランレベル5で下記のサービスを停止し、起動しないように設定する。この時、/etc/rc.d/rc5.d内のシンボリックリンクが設定前と後ではどう変化したかを確認しておくこと。