我在docker内部使用supervisord来运行两个进程:
当主进程正常停止时,ssh隧道进程将永远保持活动状态,从而防止docker停止。这是有问题的,因为容器作为Kubernetes作业运行,需要在主进程完成时终止。
问题是,是否可以在主进程停止时杀死ssh隧道,甚至更好:在主进程停止时停止监督者?
答案 0 :(得分:0)
使用event listner
:
[eventlistener:MyMainProcessName]
command=kill -3 $(cat "/var/run/supervisord.pid")
process_name=MyMainProcessName
events=PROCESS_STATE_STOPPED, PROCESS_STATE_EXITED, PROCESS_STATE_FATAL
如果该进程停止,它将发送SIGQUIT
到Supervisor