web-dev-qa-db-ja.com

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

私は今これを見たことがありますが、dpkg/aptによって呼び出されたときにサービスが開始/再起動/停止されるのを防ぐこの独特なpolicy-rc.dバイナリについて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
23
Braiam

この「スクリプト」は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ファイルmustは、パッケージによって代替システム(/ 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に変更して完了します。サービスをインストール/削除/アップグレードするたびに、これらは(再)開始/停止されます。

31
Braiam