CentOS/RHEL は、システムのさまざまなランレベルで開始されるサービスを管理するためのシンプルなコマンドライン ツール (chkconfig) を提供します。 chkconfig では、実際の init スクリプトにコメント行を追加して、サービスを開始する必要がある実行レベルと、実行レベルの初期化中に相対的にいつサービスを開始するかを指定する必要があります。 (init スクリプトは特定の順序で処理され、他のサービスに依存するサービスが依存するサービスの後に開始されるようにします。) httpd init スクリプトから取得したこれらの行は次のとおりです。
# chkconfig: 345 85 15 # description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI.
こちら、
345 – サービスがデフォルトで有効になるランレベル。
85 – 優先順位を開始します。数値が小さいほど優先度が高くなり、特定のランレベル内でサービスがより早く開始されます。
15 – 優先順位を停止します。数値が小さいほど優先度が高くなり、特定のランレベル内でサービスがより早く停止されます。
chkconfig を使用してサービスを一覧表示する
どのサービスがどの実行レベルで開始されたかのリストを取得するには、コマンド「chkconfig –list」を使用します 」。
# chkconfig --list acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off cgconfig 0:off 1:off 2:off 3:off 4:off 5:off 6:off ...
必要に応じて、追加の引数として名前を追加できます。chkconfig は、そのサービスの情報のみを一覧表示します。以下は、私のシステムでの chkconfig –list iptables の出力です:
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:on 5:on 6:off
この場合、chkconfig は実行レベル 3、4、および 5 で iptables サービスが開始されることを報告します。
起動時のサービスの有効化または無効化
この例では、iptables サービスを使用します。必要に応じて、サービスが開始される現在の規則をリストします。
# chkconfig --list iptables httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ランレベルを指定せずに「chkconfig on」を実行すると、ランレベル 2、3、4、および 5 でサービスが有効になります。例:
# chkconfig iptables on
# chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
同様に、すべての実行レベルでサービスを無効にするには、「chkconfig off」コマンドを使用します。例:
# chkconfig iptables off
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig 微調整
–レベル chkconfig にオプションを指定して、変更するランレベル (オンまたはオフ) を指定できます。他のランレベルは変更されません。これにより、ランレベル 3 および 5 で iptables を開始するようにシステムが構成されます:
# chkconfig --level 35 iptables on
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:off 5:on 6:off
chkconfig を使用してサービスを追加する
chkconfig の推奨事項に従ってすべての実行レベルに新しいサービスを追加するには、次のコマンドを使用します:
# chkconfig --add [servicename]
chkconfig は、サービスのすべてのリンクを正しいディレクトリに一度に設定します。
注意 :アプリケーションまたはサービスがインストールされると、初期化スクリプトが生成され、/etc/init.d に自動的に追加されます。したがって、サービスの名前を特定するのが難しい場合は、/etc/init.d にアクセスし、適切なスクリプトを見つけて、その内容からサービス名を取得します。サービス情報のリセット
/etc/rc.d ディレクトリ ツリーのバックアップがあり、システムに戻って復元する方法がある限り、サービスで遊ぶことは教育的です。ただし、通常、この種の抜本的なアクションは必要ありません。代わりに、次のコマンドを発行して、サービスの起動優先度やその他の情報を推奨設定に戻すことができます。
# chkconfig [servicename] reset
このコマンドは、すべてを (できれば) 正常なデフォルトに戻します。
chkconfig を使用してサービスを削除する
サービスを使用する必要がなくなった場合は、起動時に「chkconfig off」スイッチを使用してサービスを無効にすることができます:
# chkconfig [servicename] off
次に、次のコマンドでサービスの実行を停止する必要があります:
# service [servicename] stop
前のコマンドはすぐに有効になります。ただし、この手順を完了するために、次のように入力して chkconfig 管理ツールから削除することをお勧めします。
# chkconfig --del [servicename]