許多程式允許在守護程式模式(通常是預設模式)下運行,或使用諸如 之類的標誌在前台顯式運行它-f
。
現在,當配置新貴來運行這樣的程式時,我可以這樣做
exec foo -f # run in foreground
或者
expect fork
exec foo # automatically runs as a daemon
有理由選擇其中一個嗎?感覺在前台運行所有內容並讓新貴處理進程更容易,但這有缺點嗎?
答案1
我非常喜歡在前台運行東西;它避免了守護進程可能出現的任何複雜情況(例如新貴失去對長時間運行的守護程序的追蹤)。唯一的例外是一小部分守護程序,它們有將“請在前台運行”解釋為“請在某種性能不佳的調試模式下運行”的令人不快的習慣,並做一些愚蠢的事情,例如僅運行一個線程,或不產生童工,等等。