nohup是永久执行:和用户终端没有关系,断开SSH连接都不会影响他的运行,但nohup没有后台运行的意思;
&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出
守护进程,使命令永久的在后台执行:nohup COMMAND &
nohup会输出日志文件:无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
执行 ./a.out & 的时候, 即使你用ctrl C, 那么a.out照样运行(因为对SIGINT信号免疫)。 但是要注意, 如果你直接关掉shell后, 那么, a.out进程同样消失,对SIGHUP信号不免疫。
nohup的意思是忽略SIGHUP信号, 所以当运行nohup ./a.out的时候, 关闭shell, 那么a.out进程还是存在的(对SIGHUP信号免疫)。 但是, 要注意, 如果你直接在shell中用Ctrl C, 那么, a.out进程也是会消失的(因为对SIGINT信号不免疫)