我在docker容器中有一个长时间运行的进程,其设置如下:
Dockerfile
...
ENTRYPOINT ["./invoke.sh"]
调用脚本
#!/bin/bash
./long-running-command
如果长时间运行的命令正常运行时,它会每隔几秒向 STDERR 发送输出。如果它挂起,它将停止向 STDERR 输出。我如何使用监视器或父进程自动检测长时间运行的命令已停止写入数据一段时间(约 2 分钟)并自动终止长时间运行的命令?
答案1
来自文档:
默认情况下,docker logs 或 docker service logs 显示命令的输出,就像您在终端中以交互方式运行该命令时一样。
使用docker logs
命令检查 stderr。
要终止该命令,您可以停止容器。如果这不可能或不可取,则有查找 PID 的方法长期运行的进程。