web-dev-qa-db-ja.com

インターネットの可用性に対するスタートアップの依存関係をどのように書くか?

私のRaspberryPi(〜Debian)のサービスのいくつかは、インターネットの可用性に依存しています(特に、ntpd不可解な理由で )。具体的には、ネットワークデバイスまたはアップしているリンクの可用性は十分ではありません。

/etc/init.d/ntpを見ると

### BEGIN INIT INFO
# Provides:        ntp
# Required-Start:  $network $remote_fs $syslog
# Required-Stop:   $network $remote_fs $syslog
# Default-Start:   2 3 4 5
# Default-Stop:
# Short-Description: Start NTP daemon
### END INIT INFO

これは、ntpが開始できるかどうかは$networkに依存していることを意味すると私は信じています。 /etc/insserv.confで参照を見つけましたが、それを設定するために実際に何が必要かについてはあまり説明されていません。

#
# Low level networking (ethernet card)
#
$network        +networking +ifupdown

Q1:$networkは、+networking +ifupdown要素を介してどの程度正確に定義されていますか? (ネットワークを「アップ」として宣言する前に、変更して実際のホストに到達できるようにするため)

Q2:ネットワークの前提条件が満たされていない場合、ntpの開始は遅れますか、それとも失敗しますか?

3
WoJ

$ networkはどこで定義されていますか?

これは良い質問です、そして 私はここでそれを一般化しました

$ networkは+ networking + ifupdown要素を介してどの程度正確に定義されていますか?

AFAICTそれはそれによって定義されていません、それはどのサービスが(オプションで)施設が持つ依存関係も宣言しなければならないかを定義します(??-私が投稿して上記にリンクした質問を参照してください)。 man insservから:

insservは、構成ファイル/etc/insserv.confでシステム機能をスキャンします[...]このようなシステム機能が後に続くすべての名前は、機能の必要な依存関係を宣言します。 [...]「+」記号で始まる名前はオプションとしてマークされます。

実際、ラズビアンでは/etc/init.d/networking(ランレベルに関係なく起動時に実行される/etc/rcS.dを介して開始されます)には、前提条件として$networkが含まれていません他のサービス(ntp)します。

Q2:ネットワークの前提条件が満たされていない場合、ntpの開始が遅れますか、それとも失敗しますか?

これらの前提条件(およびINIT INFOブロック内の他のもの)は、/etc/rcN.dディレクトリ内のスクリプトリンクを設定および構成するためにのみ使用されます。たとえば、update-rc.d(のフロントエンドはinsserv)。つまり、実際の実行時には使用されないため、S02ntpがデフォルトの実行レベルにある場合は、何があっても実行されます起動中(以前の致命的なエラーを除く)。

3
goldilocks