私はしばらくこれに苦労してきましたが、完全に困惑しています。
(サービス実行可能ファイルの)インストールが完了すると、サービスを開始するはずのこのpostinst Debianスクリプトがあります。私が知る限り、サービスは正常に開始されますが、すぐに不思議なことに終了します。コマンドラインからサービスを再起動すると、Synaptic が終了すると正常に動作します。
これを確認するために、ダミーパッケージを作成してみました。ダミー パッケージは、/etc/init/service-dummy.conf と、/etc/init.d/service-dummy という名前のそのファイルへのシンボリック リンクをインストールします (元のサービスと同様)。service-dummy.conf の内容は、service.conf と同じです。ダミーはサービスを開始します...そして、サービスは実行を続けます。だから私は私の問題を再現することさえできません!
postinst スクリプトはこれを行います。
#!/bin/sh
set -e
case "$1" in
configure)
# (instructions which config, make and install the freshly installed source code)
ldconfig
echo "Install concluded"
if [ -e "/etc/init/service-dummy.conf" ]; then
echo "Starting service-dummy root service" | tee service.log
service service-dummy restart | tee --append service.log
else
echo "service-dummy.conf not installed"
fi
echo "Postinst complete"
;;
*)
echo "postinst called with unknown argument '$1'" >&2
;;
esac
# exit 1 to ensure installer stalls
exit 1
Synaptic はログを表示します。
...
Starting service-dummy root service
stop: Unknown instance:
service-dummy start/running, process 9207
Postinst complete
dpkg: error processing service-dummy (--configure):
subprocess installed post-installation script returned error exit status 1
...
あたかもアップスタートをリフレッシュする必要があるかのようですか?
私はさらに多くのことを試しましたが、機能するようになりました。サービスを開始してから、出口1でスクリプトを中止し、スクリプトが2回目に実行されると(postinst、同じパラメーターなので、2番目を検出しますそれ以外の場合は実行します)、サービスを再度開始しますが、今回は固執します。
重要な手がかりはログにあります。
Postinst complete (aborting script)
dpkg: error processing service-dummy (--configure):
subprocess installed post-installation script returned error exit status 1
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
service-dummy
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install. Trying to recover:
Setting up service-dummy ...
service-dummy postinst configure
Starting service-dummy a second time
stop: Unknown instance:
service-dummy start/running, process 4034
Postinst complete (aborting script recovery attempt)
したがって、私の質問は次のようになると思います。
ldconfig の処理を遅らせないようにするにはどうすればよいですか?