web-dev-qa-db-ja.com

起動時にサービスの実行順序を変更する方法は?

たとえば、init.dフォルダーにいくつかのサービスがあります。 hdfs、zookeeper、elasticsearch、hbaseなど。

これで、update-rc.d 'service' defaultsコマンドを実行して、これらすべてのサービスをスタートアップに追加しました。知っているように、hdfsとzookeeperが開始されていないと、hbaseは実行できません。そこで、まずhdfsを起動し、次にzookeeperを起動し、最後にhbaseを起動します。

どうすればいいですか?

2
Punit Naik

update-rc.d(8)はサービスを有効または無効にしますが、サービスの順序はinsserv(8)によって処理され、サービスのLSBヘッダーを編集して設定/追加することでカスタマイズできます。

Required-Start: $all

最も古いバージョンでは、次のようにして順序を決定できます。

update-rc.d myservice start 95 2 3 4 5 . stop 70 0 1 6 .

しかし、Ubuntu 14の後、私はこのUbuntu 16.04(4.4.0-31-generic)を試しました:

update-rc.d myservice defaults 95 70

動作せず、常にヘッダーで定義された順序を作成します。

 Sudo find /etc/ -name ???myservice | sort
/etc/rc0.d/K01myservice
/etc/rc1.d/K01myservice
/etc/rc2.d/S03myservice
/etc/rc3.d/S03myservice
/etc/rc4.d/S03myservice
/etc/rc5.d/S03myservice
/etc/rc6.d/K01myservice

また試してみてください:

update-rc.d myservice defaults any_text_wath_you_want lalala

Andsは、「デフォルト」以降のすべてのテキストを無視するようです。私は私のインストール注文時にそれが何をするかを知りません、私は注文が以前にサービスをインストールしたとは思いません。

3