web-dev-qa-db-ja.com

chkconfigが間違った順序でサービスシンボリックリンクを作成している

RHEL 6.3には、postgresqlとhttpd(それぞれ64と85の順序)の後に開始する必要のあるシステムサービスがありますが、chkconfigは常に50の順序で配置します。 LSBスタンザ構文。

/etc/init.d/foo、所有者ルート、権限755を次のテキストで作成しました:

### BEGIN INIT INFO
# Provides: foo
# Required-Start: postgresql httpd
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Foo init script
### END INIT INFO

そして、chkconfig --add fooを実行しました。結果:期待どおり、/etc/rc5.d/S86fooが作成されます。 (他のランレベルも予想どおりです。)

RHELマシンでまったく同じ実験を繰り返したところ、代わりに/etc/rc5.d/S50fooが作成されました。異なる結果につながるような2つの違いは見当たりません。両方のマシンには、同じ順序とランレベルで始まるpostgresqlとhttpdがあります。何かご意見は? # chkconfig: 2345 86 50を使用するか、サービスのシンボリックリンクの名前を手動で正しい順序に変更することもできますが、後のユーザー向けにインストールプロセスを文書化しようとしています。正しく実行する方法を知り、そうでない理由を理解したいと思います。期待どおりに動作します。

4
Robert

RHシステムでは、文書化されているようにchkconfig行を使用する必要があります。

https://fedoraproject.org/wiki/Packaging:SysVInitScript#.23_chkconfig:_line

Chkconfig行について:

SysVスタイルのinitscriptのchkconfig:行は、サービスをデフォルトで開始する必要があるランレベルを決定するために使用されます。また、ランレベル内でサービスが開始される「優先度」または順序を設定するためにも使用されます。すべてのFedoraSysVスタイルの初期スクリプトにはこの行が必要です。

LSBヘッダーについて:

ランレベルでデフォルトで開始する必要がある各FedoraSysVスタイルのinitscriptは、LSBヘッダーにこの行を含める必要があり、ランレベルのリストと一致する必要がありますChkconfigヘッダーで起動用に定義されています。

1
GioMac