这是一个奇怪的行为,显示如何杀死进程,但实际上进程没有被杀死
示例(来自 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 容器下运行