在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,則表示會發送後端