systemd システムで Debconf エラーが発生しました。

systemd システムで Debconf エラーが発生しました。

debconfインストール中にUbuntu 16.04で構成パッケージを使用中に、次の問題が発生しました。

より正確には、このパッケージはdebconf構成ファイルを保存してからpostinstスクリプトからサービスを開始するために使用されます。さらに、サービスはdebconfモジュールを使用して前の手順で保存した設定をロードします。

ただし、次のエラーによりサービスがsystemd開始されません。

debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable

私が知っている限り、このファイルはdpkgまだフロントエンドを使用してアクセスされており、debconfサービスが別のフロントエンドを起動しようとすると競合が発生します(環境変数はDEBIAN_HAS_FRONTENDサービスに渡されません)。DEBIAN_HAS_FRONTENDスクリプトでenv変数を強制的に適用しようとしましたが、他のエラーが発生しました。

dpkgプロセスが終了してdebconf完了したら、デーモンを強制的に起動する必要があると思います。どんなアイデアがありますか?

ベストアンサー1

それで、ついに問題を見つけて、後で誰かに役立つかどうかを投稿します。

前述のように、postinstスクリプトでサービスを開始しようとしていますが、サービスがいくつかの構成パラメータを取得しようとしていますが、すでに実行中のインスタンスがあるため、debconfigエラーが発生します(すべての構成がファイルにあるにもかかわらず)。 、ファイルではありません)。debconfconfigpostinst

当時の問題は、スクリプトdebconfの実行中にpostinst私が使用していないフロントエンドが有効になっていることでしたdebconf。しかし、ロードされた行に注釈を付けましたconfmodue

# . /usr/share/debconf/confmodule

確かに、dpkg-reconfigure(私も推測していますdpkg。)ファイル(、、および)の "confmodule"文字列と一致するconfmoduleとロードされると見なされます。したがって、confmoduleを効果的にロードしていない間、dpkg-reconfigureはフロントエンドを解放しなかったため、サービスは他のインスタンスを起動できませんでした。解決策は単に行を削除することです。configpostinstprermdebconf

おすすめ記事