spa*_*iot 3 containers pid twisted docker
我已经设置了一个Kippo服务器在docker容器中运行.一切都运行良好,直到你杀了容器.杀死容器(通过重新启动机器或通过docker kill)使其无法使用STDERR"另一个扭曲的服务器正在运行,PID 1".我怎么解决这个问题?我没有问题重置容器的文件系统或类似的东西,因为我想要的一切都记录到数据库.非常感谢你
在Docker中,每个容器都在自己的PID名称空间中运行.这意味着dockerfile启动的进程将始终为PID 1,并且PID将从那里向上计数.
twistd
期望PID足够不确定,它可以twistd
通过简单地比较以查看PID是否相同来检查另一个是否"已在运行".因为在Docker中,PID总是为1,所以这个检查总是成功,并twistd
认为它不应该启动.如果容器以非干净的方式退出,twistd
则无法清理其.pid
文件,并且状态将保留在容器的文件系统中.
由于Docker守护程序将命名空间容器并阻止两个匹配twistd
进程同时启动,因此该.pid
文件及其相关检查实际上并不实用,因此您应该禁用它.您可以通过更改命令行来禁用它,以在插件名称之前包含--pidfile=
选项(完全相同,在" =
" 之后没有任何内容).我不熟悉Kippo,但是因为twistd web
这样twistd --pidfile= web
.
我希望这个对你有用!
归档时间: |
|
查看次数: |
1232 次 |
最近记录: |