Debian には、実際にインストール時にサービスを開始するための書面によるポリシーがありますか?

Debian には、実際にインストール時にサービスを開始するための書面によるポリシーがありますか?

Debian パッケージは通常、インストール直後にサービスを開始します。これはよく知られている現象なので ~の Webページ 説明する どのようにこの動作を無効にします。私が覚えている限り、これはsystemd採用される前から存在していました。

私の質問はこれが正式な方針ですか?このルールはどこに書かれていますか?で探してみました。Debian ポリシーしかし、関連するコメントが見つかりません。

答え1

この時間はポリシーの「リンク管理」セクション、サービスリンクの処理方法について説明します。

デフォルトの動作は、パッケージデーモンの自動起動を有効にすることです。

ここで私が読んでいる内容は技術的に言えば広い意味で「自動起動」です。ポリシーのこの部分は「リンク」のみを扱うためです。つまり、起動時にサービスを開始するように設定することは単にこれを行うと理解できますが、これによりシステム状態が一貫しなくなります(つまりインストールされているが次回の起動まで開始されないサービスです。このセクションの推奨事項と:

パッケージの最も簡単な方法は、直接呼び出すのではなく、update-rc.ddebhelperプログラムを使用してupdate-rc.d必要な呼び出しを自動的に追加することです。などを参照してくださいdh_installinitdh_installsystemd

パッケージの最も簡単な方法は、直接呼び出すのではなく、invoke-rc.ddebhelperプログラムを使用してinvoke-rc.d必要な呼び出しを自動的に追加することです。などを参照してくださいdh_installinitdh_installsystemd

デフォルトでは、サービスが有効になり、すぐに開始されます。

ポリシーの他の部分は、これを想定するか、少なくともそれをサポートする要件で発生します。構成ファイルセクション:

これらのスクリプトは、パッケージに対して可能なすべてのオプションを構成する必要はなく、そのシステムでパッケージを実行するために必要なオプションのみを構成する必要があります。理想的には、システム管理者は、スクリプトによって(半分)自動的に実行される構成以外の構成を実行する必要はありませんpostinst

ただし、ポリシーは必要に応じて反対の動作を許可します。

ただし、ローカル管理者が明示的に要求しない限り、デーモンが自動的に起動しないようにする場合は、postinstスクリプトに以下を追加してください。

update-rc.d package defaults-disabled

デフォルト値はローカルに設定することもできます。たとえば、debootstrap-style chrootは、実行中のサービスをスキップするように設定されることがよくあります。

ポリシーのこの部分はsystemdに対して更新する必要がありますが、一般原則はまだ適用されています。

関連情報