1

私はしばらくこれに苦労してきましたが、完全に困惑しています。

(サービス実行可能ファイルの)インストールが完了すると、サービスを開始するはずのこの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 の処理を​​遅らせないようにするにはどうすればよいですか?

4

1 に答える 1