我现在已经多次遇到这个问题 - 一些 podman 容器陷入停止状态,但我不知道如何解决这个问题。
[grant@patches patches]$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
434645aa71eb docker.io/library/postgres:15.3 postgres 40 minutes ago Stopping patches-psql
无论怎样的武力杀戮似乎都无法阻止这一进程。前任:
[grant@patches patches]$ podman kill patches-psql
2023-08-11T19:17:28.307348Z: open pidfd: No such process
Error: container state improper: stopped
[grant@patches patches]$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
434645aa71eb docker.io/library/postgres:15.3 postgres 52 minutes ago Stopping patches-psql
我可以删除容器,rm -f
但我还没有找到强制其停止然后重新启动的方法。
答案1
我在互联网上的其他地方看到其他人发布了有关此问题的文章,所以我不想关闭这个问题,但在实现我写的答案后我能够解决这个问题在这个问题中。
基本上发生的事情是我有一个 systemd 服务正在控制容器,但容器具有重新启动策略,例如始终重新启动。这些是冲突的,因此当 systemd 尝试终止容器时,容器会尝试自行重新启动。
我不太清楚为什么某些容器会陷入停止状态,但 PID 不存在,所以它们实际上已经死了。