linux 后台运行nohup & ctrl+z

时间:2023-02-07 21:54:22

使用Linux时,经常希望有些命令结果不在前台显示,如sh脚本,耗时的命令等。
一般情况下,使用 & 将命令结果后台运行,如sh test.sh,脚本后台执行。

有时候命令已经在前台执行了,需要将其切换到后台可以使用, ctrl+z ,但是该命令切换到后台会处于暂停状态,可以配合 jobs 进一步处理后台的命令(进程)。

更极端的情况是 有些命令需要占用很长的时间却又不能间断,如下载。。。,这时候需要 nohup (ignoring hangup signals) 忽略挂起信号一直在后台执行。

比较下 & 与 nohup:
& :后台运行,但用户终端退出时(断连),命令结束
nohup test.sh & : 后台运行,用户终端退出时(断连)依然保持运行,可使用标准输入输出。

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
如:nohup command > myout.file 2>&1 &
指定了输出到文件myout.file
2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。

使用例子参考:

https://www.cnblogs.com/MYSQLZOUQI/p/5283761.html