我正在使用本文檔中概述的修改版本的循環結構來運行HTTP::Daemon的本地實例。我已經使人們有可能退出在用戶的要求下環,但我的Perl腳本的後續執行給我的錯誤:如何在我的守護程序後清理?
HTTP::Daemon: Address already in use ...propagated at /path/to/script line NNN, line 3.
更重要的是我必須做的是一個好公民,我的後臺程序後清理?
我正在使用本文檔中概述的修改版本的循環結構來運行HTTP::Daemon的本地實例。我已經使人們有可能退出在用戶的要求下環,但我的Perl腳本的後續執行給我的錯誤:如何在我的守護程序後清理?
HTTP::Daemon: Address already in use ...propagated at /path/to/script line NNN, line 3.
更重要的是我必須做的是一個好公民,我的後臺程序後清理?
很可能沒有什麼。該地址正在被來自先前實例的剩餘連接使用。一旦全部關閉,地址將自動釋放。
如果你想加快這個過程,你可以在綁定之前設置SO_REUSEADDR套接字選項。有關更多詳細信息,請參閱PERL socket文檔。 「如果服務器沒有未完成的連接而死掉,除非使用選項SO_REUSEADDR使用setsockopt()函數,否則該端口不會立即可重用。」
更具體地說,你添加'ReuseAddr => 1'到你傳遞給'HTTP :: Daemon-> new'的參數。 – cjm
這個Q是這個的重複Q:http://stackoverflow.com/questions/8044590/how-do-i-clean-up-after-my-daemon – slm