某日在调试superset docker容器里面的一个程序后,容器突然假死
docker ps 显示容器状态正常,但是对外服务已经不可用
docker stats 没有反应,这个有点奇怪单个容器也能影响全部?
docker stop CONTAINER_ID 也没有任何反应
docker restart CONTAINER_ID 也没有任何反应
docker exec -it --user root CONTAINER_ID /bin/bash 也没有任何反应
求助朋友后,朋友说是不是僵尸进程
然后用top命令查看,发现有 zombie 3个进程
linux 进程状态
Linux Process Status:
R (task_running) : 可执行状态
S (task_interruptible): 可中断的睡眠状态
D (task_uninterruptible): 不可中断的睡眠状态
T (task_stopped or task_traced): 暂停状态或跟踪状态
Z (task_dead - exit_zombie): 退出状态,进程成为僵尸进程
X (task_dead - exit_dead): 退出状态,进程即将被销毁
继续使用命令查看具体信息
ps -ef | grep "defunct"
跟进PPID查看父进程发现是刚好是对应CONTAINER_ID的进程
ps -ef | grep 82248
最后kill -9 82248 后 zombie 也变成0
一切恢复正常
参考文章
https://www.oschina.net/trans...
https://blog.csdn.net/qq_3959...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。