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