即使我们使用kill -9,进程也没有被杀死,并且进程实际上属于已经删除的容器

即使我们使用kill -9,进程也没有被杀死,并且进程实际上属于已经删除的容器

这是一个奇怪的行为,显示如何杀死进程,但实际上进程没有被杀死

示例(来自 rhel 7.6 服务器)

ps -ef | grep kafka-exporter
root     15340 19528  0 17:25 pts/0    00:00:00 grep --color=auto kafka-exporter
root     28326     1 99 Oct18 ?        3-03:04:32 /bin/kafka-exporter --kafka.server=kafka1.sys76.com:6667

现在我们尝试终止该进程

kill -9 28326

再次查看进程是否被杀死,但我们可以看到进程仍在运行

ps -ef | grep kafka-exporter
root     20204 19528  0 17:27 pts/0    00:00:00 grep --color=auto kafka-exporter
root     28326     1 99 Oct18 ?        3-03:07:54 /bin/kafka-exporter --kafka.server=kafka1.sys76.com:6667

我们知道该进程kafka-exporter属于 docker 容器,但 docker 容器已经被删除,如下所示

 docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

但由于一些不清楚的原因,应该在容器中运行的二进制文件/bin/kafka-exporter 也出现在 Linux 操作系统上

实际上当我们这样做时ls -l /bin/kafka-exporter,我们可以看到这个二进制文件不存在

所以知道如何从 Linux 操作系统中终止该进程,尽管该进程在已删除的 docker 容器下运行

相关内容