◆ サービスの起動と停止
サービスは、システム起動時やランレベル実行時にinitプロセスがRCスクリプトを実行することで
そのランレベルで起動すべきサービスが開始されて、停止されるべきサービスが停止する仕組みと
なっています。システム管理者は必要に応じてサービスを停止、起動、再起動する必要があります。
◆ /etc/init.d
プロセスには、処理が終了してすぐに消滅するものと、メモリ上に常駐して要求に応じてサービスを
提供するものとがあります。前者は多くのコマンドが該当します。後者は、各種システムサービスや
サーバープログラムが該当します。システムサービスやサーバープログラム等のデーモンを起動する
ためのファイルは /etc/init.d ディレクトリにあり、そのファイルは起動スクリプトと呼ばれています。
なお、下図の通り/etc/rc*.d ディレクトリの起動スクリプトの実体は全て /etc/init.d に格納されています。
※ ややこしいですが、RedHat系のLinuxディストリビューションでは /etc/rc.d/init.d が実物の起動用スクリプトの格納場所。
※ /etc/init.d が /etc/rc.d/init.d へのシンボリックリンクになっているため、RedHat系でも /etc/init.d/〜
でコマンドが実行可。
◆ サービスの起動と停止
起動スクリプトにstart、stop、restart、statusの引数をつけて実行することで、デーモンの起動、終了
再起動、ステータス確認が行えます。ちなみに、/etc/init.d/と指定してコマンド実行するのではなくて
/sbin/serviceコマンドを使用しても起動スクリプトの起動、終了、再起動、ステータスの確認も行えます。
◆ 構文 : /etc/init.d/起動スクリプト 引数
引数 |
説明 |
start |
サービスを起動する |
stop |
サービスを停止する |
restart |
サービスを再起動する |
status |
サービスの状態を表示する |
◆ 実行例 : Apache Webサーバのデーモンが起動しているかどうかを確認 ( service httpd statusコマンドと同じ )
# /etc/init.d/httpd status
httpd is stopped
|
◆ 実行例 : Apache Webサーバのデーモンを起動させる ( service httpd startコマンドと同じ )
# /etc/init.d/httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for testhost.localdomain
httpd: Could not reliably determine the server's fully qualified domain
name,
using 127.0.0.1 for ServerName [ OK ]
|
◆ 実行例 : Apache Webサーバのデーモンを停止させる ( service httpd stopコマンドと同じ )
# /etc/init.d/httpd stop
Stopping httpd: [ OK ]
|
◆ 実行例 : ネットワークサービスを起動させる ( service network startコマンドと同じ )
# /etc/init.d/network start
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/12
state: activated
Connection activated
[ OK ]
|
主な起動スクリプトは以下の通りです。
起動スクリプト |
説明 |
/etc/init.d/network |
ネットワークサービス |
/etc/init.d/crond |
cronサービス |
/etc/init.d/cups |
印刷サービス |
/etc/init.d/rsyslog |
シスログサービス |
/etc/init.d/ntpd |
NTPサーバー |
/etc/init.d/sshd |
SSHサーバー |
/etc/init.d/postfix |
Postfixメールサーバー |
/etc/init.d/httpd |
Apache Webサーバー |
◆ chkconfigコマンド
RedHat系Linuxディストリビューションでは、chkconfigコマンドで自動起動、自動停止用のシンボリック
リンクを作成することができます。例えば、Linuxシステム起動後に毎回同様の操作で「Apache」を起動
するのが面倒な場合、chkconfigコマンドを使用すればLinux起動時に自動的に起動させることが可能です。
◆ 構文 : chkconfig サービス名 on | off | reset
◆ 実行例 : Linuxシステム起動時にApache Webサーバも自動的に起動させる
自動起動するように設定されているかどうかは、--listオプションを指定すれば確認することができます。
以下ではランレベル2〜5でLinuxシステムを起動した場合にApacheが自動的に起動することが分かります。
# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
|
Linuxシステム起動時に、どのランレベルでサービスを自動起動させるかどうかを指定したい場合には
以下の構文通り「--level」を指定します。chkconfig httpd on とだけ指定した場合にはランレベルが
2〜5 が on になるので、以下のコマンドを実行すれば、同じ効果が得られることになります。
# chkconfig --level 2345 httpd on |
|