nohup 命令 - 将程序以忽略挂起信号的方式运行起来

使用场景:一般我们都会使用 XShell 等终端模拟软件连接 Linux 服务器,但是在运行比较长时间的脚本(特别是一些 HiveQL 脚本)的时候,往往都要跑上个把小时甚至更长,这期间如果关闭终端窗口,运行的进程就会被杀死。使用 nohup 命令可以使进程不受终端窗口的影响。

1 使用实例

使用 nohup 命令提交作业,在缺省情况下该作业的所有输出都被重定向到一个名为 nohup.out 的文件中(默认在当前目录下,如果文件不可写,输出重定向到 $HOME/nohup.out 文件中),除非另外指定了输出文件:

nohup command > myout.file 2>&1 &

之后可以使用命令tail -f myout.file实时查看 command 的运行情况。

2 为什么nohup命令最后要加个 & 呢

这里要说明下 nohup& 的功能区别:

& 的意思是在后台运行,用 Ctrl+C 无法杀死后台进程。但是如果 XShell 关闭的话,后台进程同样会被杀死。

相反,如果 nohup 最后不加 & ,使用 Ctrl+C 是可以杀死 command 的。所以要让进程真正不受 XShell 中 Ctrl+C 和关闭终端窗口的影响,需要二者组合使用。

3 参考文章

http://man.linuxde.net/nohup

https://blog.csdn.net/stpeace/article/details/76389073

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值