1、nohup
①nohup 可以使得命令永远运行下去和用户终端没有关系。当我们断开ssh 连接的时候不会影响他的运行
2、&
①& 表示后台运行。当ssh 断开连接的时候(用户退出或挂起的时候),命令也自动退出
使用&后台运行程序:
结果会输出到终端
使用Ctrl + C发送SIGINT信号,程序免疫
关闭session发送SIGHUP信号,程序关闭
使用nohup运行程序:
结果默认会输出到nohup.out
使用Ctrl + C发送SIGINT信号,程序关闭
关闭session发送SIGHUP信号,程序免疫
(
不用nohup和&:在前台运行(终端不能输入其他命令),关闭当前终端后,进程会停止运行;
只用nohup:在前台运行,关闭终端后,进程会继续在系统里运行;
只用&:在后台运行(终端可以输入其他命令),关闭终端后,脚本会继续在系统里运行,但是stdout(标准输出)和stderr(标准错误)的信息会无法查看;
使用nohup 和 &:在后台运行,关闭运行脚本的终端后,脚本会继续在系统里运行,stdout和stderr里的内容会输出到nohup.out文件中。
)
Linux下用nohup运行程序的,输入或者日志会默认写入nohup.out,一段时间以后,nohup.out文件会越来越占空间,如果在程序运行过程中删除nohup.out,容易出错,因为启动时查看运行状态,不可能不输出,记录一下在运行时清理的方法:
cp /dev/null nohup.out