インストール時にサービスが開始されないのはなぜですか?


23

私はこれを今しばらく見ましたがpolicy-rc.d、dpkg / aptによって呼び出されたときにサービスが開始/再起動/停止されるのを防ぐこの奇妙なバイナリについてubuntuの男性で何も見つけていませんでしたので、この理由は何ですか?

Setting up lxc (0.9.0-0ubuntu3.6) ...
invoke-rc.d: policy-rc.d denied execution of start.
invoke-rc.d: policy-rc.d denied execution of start.
invoke-rc.d: policy-rc.d denied execution of start.

どうやら、このバイナリを所有しているパッケージはありません。

dpkg -S /usr/sbin/policy-rc.d
dpkg-query: no path found matching pattern /usr/sbin/policy-rc.d

回答:


31

この「スクリプト」はsysv-rcパッケージに含まれています。これは、パッケージをインストール/アップグレード/アンインストールするたびにシステム管理者がどのサービスを開始/再起動/停止するかを制御できるDebianポリシーの一部です。

POLICY-RC.Dポリシーレイヤー(/usr/sbin/policy-rc.d)インターフェース:

ポリシー層の必要性はあまり一般的ではないため、ほとんどのDebianシステムにはこのスクリプトがありません。chroot jailを使用するほとんどの人は、jailされた/usr/sbin/policy-rc.dスクリプトとして101の終了ステータスを返す1行のスクリプトだけが必要です。

/usr/sbin/policy-rc.dファイル、それを提供するパッケージによって、代替システム(/ usr / sbin / update-alternatives)を介して管理する必要あります。

/usr/sbin/policy-rc.d [オプション] []

/usr/sbin/policy-rc.d [オプション] --list [...]

ソース

それで、ここで何が起こるのでしょうか?さて、このスクリプトが存在する場合は常に、ローカルシステムの現在のポリシーを示すコードを返します(既定では101、ポリシーによってアクションは禁止されています)。ポリシーを変更する場合は、ファイルをrootとして次のいずれかの値に変更します。

  0 - action allowed
  1 - unknown action (therefore, undefined policy)
 100 - unknown initscript id
 101 - action forbidden by policy
 102 - subsystem error
 103 - syntax error
 104 - [reserved]
 105 - behaviour uncertain, policy undefined.
 106 - action not allowed. Use the returned fallback actions
       (which are implied to be "allowed") instead. 

スクリプトは依然としてプレースホルダーですが、完了すると、これらの値がすべて返されます。変更を許可する場合exit 101exit 0、変更して完了します。サービスをインストール/削除/アップグレードするたびに、これらは(再)開始/停止されます。


6
Dockerイメージの修正exit 101 # For most Docker users, "apt-get install" only happens during "docker build", # where starting services doesn't work and often fails in humorous ways. This # prevents those failures by stopping the services from attempting to start.
-Tjorriemorrie

2
@Tjorriemorrie詳細を教えてください。Dockerイメージを構築するときにこの問題が発生し、修正できないようです
ジョニーフラワーズ

可能な解決策:monblocnotes.com/node/2057
デビッド

@JonnyFlowers彼は、Docker のソースでこれらの行
-Bigood

@Bigood:最近のmasterブランチで行番号が変更されました。これは[ Dockerのソース(github.com/moby/moby/blob/v17.05.0-ce/contrib/mkimage/…)の行へのパーマリンクです。
ホサムアリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.