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 中引用的进程先前已退出。exec您可以编写自己的脚本,在ing之前进行清理tcruntime.sh,或者添加如下内容:

#!/bin/sh

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