回答:
他の回答で提案されているように、手動で行う代わりに、initスクリプトを変更することもできます。そのような行をヘッダーに追加するだけです:
# chkconfig: 35 90 10
これchkconfig
により、サービスをランレベル3および5に追加し、開始位置を90、終了位置を10に設定します。
chkconfig off servicename && chkconfig on servicename
ランレベルとrc.dディレクトリについて少し読んでください。rc.dディレクトリ内には、S20apache K10apacheなどのSおよびKリンクがあります。これは、基本的にスクリプトの起動/シャットダウンを指示するものです。
このアーキテクチャにはいくつかの変更が加えられていますが、ほとんどのLinuxがまだ使用しています。
rcorder
はしばらくの間存在していました。
svc
がうらやましいですが、xmlなしでもでき
ここに到着した場合、2つのサービスがあり、一方が他方に依存している可能性がありますが、それらは間違った順序で開始しているため、依存関係のあるサービスは開始できません。シンボリックリンクの編集に関する提案は、スタートアップシーケンスの実行方法を説明する点で有益であり、サービスで「chkconfig on」を実行してシンボリックリンクが元の状態に再作成されるまで正常に機能します。本当に、initスクリプトレベルで問題に対処したいのですが、とにかく面倒ではありません。また、異なるランレベルで一貫性があります。おそらく回答4で提案されているように、「#chkconfig」行を追加する必要はおそらくないでしょう。おそらく同様の行が既にあるからです。
MySQLデータベースバックエンド(mysqld)でOpenldap(slapd)を実行しているサーバーの例を使用します。そのペアを構成することと、なぜそうするかは、まったく別の話です。
起動時にOpenldapがMySQLに依存し、起動シーケンスがそれより前に起動しようとするため、OpenLDAPの起動に失敗します-slapdの位置は27、mysqldの位置は64
/etc/rc3.d/の関連するシンボリックリンクは
S27slapd -> ../init.d/slapd
and
S64mysqld -> ../init.d/mysqld
2つのinitスクリプトで設定された値を探します。
[root ~]# grep chkconfig /etc/rc.d/init.d/mysqld
# chkconfig: - 64 36
[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 27 73
/etc/rc.d/init.d/slapdのchkconfig行を編集して、/ etc / rc.d / init.d / mysqldの開始位置よりも高い開始位置を設定します(85を選択しました)
[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 85 73
「chkconfig slapd on」を実行し、シンボリックリンクを再確認します
[root ~]# chkconfig slapd on
[root ~]# ls -l /etc/rc3.d/ | grep mysqld
lrwxrwxrwx 1 root root 16 Dec 10 13:45 S64mysqld -> ../init.d/mysqld
[root ~]# ls -l /etc/rc3.d/ | grep slapd
lrwxrwxrwx 1 root root 15 Apr 28 14:18 S85slapd -> ../init.d/slapd
さて、このサーバーが起動すると、slapdの前にmysqldが起動し、すべてが正しい状態になります。