supervisord如何在Docker容器内停止进程(陷阱终止信号)

当您向docker集装箱发送停止或终止命令(带有某些特定信号,例如HUP,TERM等)时,supervisord如何拦截该信号并将其发送给其子stream程?

如何在使用supervisord时优雅地阻止容器内的进程?

有两个属性可以在[program:x]部分中指定: stopwaitsecsstopwaitsecs 。 但似乎没有办法指定一个自定义的关机/停止脚本(例如,tomcat_shuytdwon.sh或类似的东西)。 一些程序使用自定义关机过程来优雅地停止。

根据supervisord文档发送一个SIGTERMsupervisord进程及其所有的subprocess都被closures了。 所以它会自动将信号传递给subprocess。 所以一个简单的docker stop应该是足够的。