0
我們使用Upstart來啓動/終止內部開發的二進制文件。讓Gnu Screen將SIGTERM信號傳遞給子進程,允許它們乾淨地關閉
在這個二進制新貴配置文件,我們定義腳本,例如:
script
exec su - user -c "screen -D -m -S $product /opt/bin/prog /opt/cfg/$product -v 5 --max_log_size=7"
end script
當運行級別設置爲5,新貴啓動腳本。運行級別設置爲3時,Upstart終止腳本。
我的問題是,Upstart發送SIGTERM,然後SIGKILL。
SIGTERM由屏幕「處理」,而不是由我的自定義二進制文件處理,所以我們的二進制信號處理程序不會得到SIGTERM,因此無法乾淨地關閉。
我已驗證我們的二進制信號處理程序確實允許它在通過屏幕不啓動時乾淨地關閉。