无法使用SIGKILL杀死docker容器中的pid 1

时间:2016-12-03 12:39:43

标签: python docker signals

出于某种原因,我想杀死docker容器中的主要python进程(PID 1)。但是,SIGTERMSIGKILL之类的终止信号不起作用。我的意思是,运行kill -SIGKILL 1无效。 如何从容器内部杀死pid 1 ?我不想运行docker stop或类似的解决方案。

1 个答案:

答案 0 :(得分:0)

根据Docker问题跟踪器以及pid 1s的一般文档说明,您需要专门为信号添加处理程序并从中杀死进程。

signal.signal(signal.SIGINT, exit_gracefully)
signal.signal(signal.SIGTERM, exit_gracefully)
需要定义

exit_gracefully并最终调用sys.exit(0)

内核需要并强制执行此行为,因为它不会在其他pid上调用sigaction默认值,即终止。

我们需要在Node.js中做类似的事情。