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

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

# nohup a.out & 
# a.out &

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

相關文章
相關標籤/搜索