Service start / stop / restart / status



 ◆ サービスの起動と停止

 サービスは、システム起動時やランレベル実行時に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サーバも自動的に起動させる
 # chkconfig httpd on


 自動起動するように設定されているかどうかは、--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



Linux 技術入門

Copyright(C) 2002-2024 ネットワークエンジニアとして All Rights Reserved