在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,则表示会发送后端