我正在使用docker创建一个tcserver实例,当我执行
时它已成功停止./ tcruntime-ctl.sh stop
但是,当我执行
时,实例未成功重新启动./ tcruntime-ctl.sh运行
原因是PID文件(PID = 1)仍然存在且未被删除
请注意,我使用 运行 命令将tcserver实例作为前台进程运行
答案 0 :(得分:0)
如果错误只是前一次运行中存在遗留pidfile,则解决方法可能是在调用tcruntime-ctl.sh
脚本之前删除pidfile。由于tcServer实例的生命周期与docker容器的生命周期相关,因此可以安全地假设pidfile中引用的进程先前已退出。您可以编写自己的脚本,在exec
tcruntime.sh
之前进行清理,或者预先添加以下内容:
#!/bin/sh
pidfile=$(dirname $0)/../logs/tcserver.pid
if [ -f $pidfile ] ; then
rm $pidfile
fi