如何在 docker 内重启 tcserver 实例?
How to restart tcserver instance within docker?
我正在使用 docker 创建一个 tcserver 实例,当我这样做时它已成功停止
./tcruntime-ctl.sh stop
但是,当我这样做时实例没有成功重启
./tcruntime-ctl.sh run
原因是 PID 文件 (PID=1) 仍然存在且未被删除
请注意,我运行使用 运行[=24= 将 tcserver 实例设置为前台进程] 命令
如果错误只是存在来自先前 运行 的残留 pid 文件,解决方法是在调用 tcruntime-ctl.sh
脚本之前删除该 pid 文件。由于 tcServer 实例的生命周期与 docker 容器的生命周期相关,因此可以安全地假设 pidfile 中引用的进程先前已经退出。您可以编写自己的脚本,在 exec
ing tcruntime.sh
之前进行清理,或者在前面添加类似以下内容:
#!/bin/sh
pidfile=$(dirname [=10=])/../logs/tcserver.pid
if [ -f $pidfile ] ; then
rm $pidfile
fi
我正在使用 docker 创建一个 tcserver 实例,当我这样做时它已成功停止
./tcruntime-ctl.sh stop
但是,当我这样做时实例没有成功重启
./tcruntime-ctl.sh run
原因是 PID 文件 (PID=1) 仍然存在且未被删除
请注意,我运行使用 运行[=24= 将 tcserver 实例设置为前台进程] 命令
如果错误只是存在来自先前 运行 的残留 pid 文件,解决方法是在调用 tcruntime-ctl.sh
脚本之前删除该 pid 文件。由于 tcServer 实例的生命周期与 docker 容器的生命周期相关,因此可以安全地假设 pidfile 中引用的进程先前已经退出。您可以编写自己的脚本,在 exec
ing tcruntime.sh
之前进行清理,或者在前面添加类似以下内容:
#!/bin/sh
pidfile=$(dirname [=10=])/../logs/tcserver.pid
if [ -f $pidfile ] ; then
rm $pidfile
fi