我正在使用 docker 创建一个 tcserver 实例,当我这样做时它已成功停止
./tcruntime-ctl.sh 停止
但是,当我这样做时,实例没有成功重新启动
./tcruntime-ctl.sh 运行
原因是 PID 文件(PID=1)仍然存在并且没有被删除
请注意,我使用run命令将 tcserver 实例作为前台进程运行
我正在使用 docker 创建一个 tcserver 实例,当我这样做时它已成功停止
./tcruntime-ctl.sh 停止
但是,当我这样做时,实例没有成功重新启动
./tcruntime-ctl.sh 运行
原因是 PID 文件(PID=1)仍然存在并且没有被删除
请注意,我使用run命令将 tcserver 实例作为前台进程运行
如果错误只是因为先前运行存在残留的 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