Linux中nohup與&啓動程序的區別

在Linux中可以使用以下2個命令讓程序以job的方式在後端運行,以便讓出終端來幹其他事情。
那麼nohup 與& 有什麼區別呢?

# nohup a.out & 
# a.out &

當關閉終端時,shell默認會發送SIGHUP信號給與該終端關聯的進程,從而導致其他進程跟隨終端退出。
nohup捕獲了SIGHUP,並做了忽略處理,因此進程不會退出。
僅&通常沒有捕獲SIGHUP,因此當終端關閉時,jobs會退出。但是可以通過shell配置成退出時不發送SIGHUP,此時效果與nohup相同。
shopt | grep hupon 查看shell針對hup信號選項配置。如果爲off,則表示終端退出時,shell不發送SIGHUP信號;爲on,則表示會發送

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章