&和nohup的介绍,运用和区别

某次运行一个需要运行很久的MR,使用nohup指令,可以后台不挂起运行程序,结果可以保存到本地。

 

 

使用场景:

显示所有在集群上的进程

yarn application --list | grep  xxx

杀掉已经运行进程,把原本开的MR程序关掉
 yarn application -kill application_1540343976274_8252
 yarn application -kill application_1540343976274_8256

以nohup执行,结果存储在user5.log中
 nohup yarn jar user5.jar  com.dayou.wang.myRunner > user5.log 2>&1&

关机让集群自己跑就好了
 

可以查看一下日志内容,程序运行完的话,用cat指令就可以了。
 tail -f user5.log

让我们来看标红的这句话。

包含三个知识点。

①&
    当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh &


     但是作业在后台运行一样会将结果输出到屏幕上,如果不需要显示到屏幕上,可以使用下面的方法把它的输出重定向到某个文件中,这就是涉及到了输出重定向问题:

command  >  out.file  2>&1  &
这个指令会把结果保存在out.file中。

②2>&1

要解释这个指令,还是得提到文件重定向。我们知道>和<是文件重定向符。那么1和2是什么?在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。所以这里2>&1 的意思就是将标准错误也输出到标准输出当中。

那么对于2>&1也就好理解了,2就是标准错误,1是标准输出,那么这条命令不就是相当于把标准错误重定向到标准输出么。这里是&1而不是1,这里&是什么?这里&相当于等效于标准输出

③nohup

 
    使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:

nohup command &
 

三个知识点相结合,就是我们标红的指令的功能了!

后台不挂起运行user5.jar,并将结果报存在日志文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值