サービスとはLinux起動時に実行され、システム終了までバックグランドで動き続けるプログラムのことで、デーモン(daemon)やサーバとも言い、その名の通り、様々な機能を他のプログラムやユーザに提供する。稼働中のサービスはpsコマンドで確認できる。
$ ps ax
どのサービスを起動させるか否かは端末からはntsysv(図2.2.1[ntsysvコマンドの実行画面])あるいはchkconfig(図2.2.2[chkconfigの実行])コマンドで、GUIからはserviceconf(図2.2.3[serviceconfコマンドの実行画面])コマンドで設定する。serviceconfではサービスの起動や停止も制御できる。それぞれのコマンドの表示を示す。
# 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 #
サービスはランレベルごとの起動と停止を設定でき、サービスの起動や停止はシェルスクリプトによって制御される。それらのファイルはディレクトリ/etc/rc.d内にランレベルごとのディレクトリ(rc0.d〜rc6.d)があり、その中に各サービスのシェルスクリプトへのシンボリックリンクが格納されている。各サービスのシェルスクリプトの実体はディレクトリ/etc/init.dにある。
各サービスへのシェルスクリプトへのシンボリックリンクの名前には次の2種類がある。??は二桁の数字が当てはまり、サービスの優先順位を示している。
/etc/rc5.dの内容の一部を示す(図2.2.4[/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内のシンボリックリンクが設定前と後ではどう変化したかを確認しておくこと。