1

docker を使用して tcserver インスタンスを作成していますが、実行すると正常に停止します

./tcruntime-ctl.sh ストップ

ただし、再起動してもインスタンスが正常に再起動されません

./tcruntime-ctl.sh 実行

その理由は、PID ファイル (PID=1) がまだ存在し、削除されていないためです。

runコマンドを使用して、フォアグラウンド プロセスとして tcserver インスタンスを実行していることに注意してください。

4

1 に答える 1

0

エラーが、以前の実行からの痕跡 pidfile があるという単純なものである場合、回避策として、tcruntime-ctl.shスクリプトを呼び出す前に pidfile を削除することができます。tcServer インスタンスの寿命は docker コンテナーの寿命に関連しているため、pidfile で参照されているプロセスが以前に終了したと安全に想定できます。execingの前にクリーンアップする独自のスクリプトを作成するtcruntime.shか、次のようなものを先頭に追加できます。

#!/bin/sh

pidfile=$(dirname $0)/../logs/tcserver.pid
if [ -f $pidfile ] ; then
    rm $pidfile
fi
于 2016-02-08T20:31:59.847 に答える