centos(17)-nohup、&、>、/dev/null、2>&1 后台离线运行程序

假如在putty上用相关命令开启一个程序,比如用java命令启动一个spring boot项目,此时日志会占据屏幕,无法再执行其他命令,并且一但关闭当前putty终端或按ctrl+c,该进程都会被结束。本篇将介绍如此让该进程脱离当前终端且始终运行。

 

& 后台运行

命令 参数 &:在原有的命令和参数后面加空格&,此时当有日志时仍然会输出到屏幕,但进程会在后台运行,我们在前台仍然可以执行其他命令。只是关闭putty终端后该进程还是会结束,而且我们并不想在前台看到那些日志。

nohup始终运行

nohup 命令 参数:nohup 的位置在命令的前面,即使关闭putty终端该进程仍然会继续执行,其日志不会输出到前台,而是记录在当前目录的nohup.out文件中。没有&默认情况是在前台执行,所以前台被占用也无法输入其他命令,而且ctrl+c仍然会结束当前前台程序。

nohup 结合 &

nohup 命令 参数 &:当两者结合使用时,进程会在后台始终运行,关闭putty终端或在前台ctrl+c都不会关闭,日志输出到nohup.out。

命令示例: nohup 命令 参数 &  

>输出文件

假如我们不想把日志输出到nohup.out,而是想输出到test.out

示例:nohup 命令 参数 >test.out &

/dev/null 黑洞设备

通常一些java框架如spring都会配置记录日志,我们并不需要linux来记录日志,而且时间长了nohup.out文件会变的非常大,所以我们把linux中的日志全部丢到/dev/null中,相当于垃圾桶,就不会再产生linux日志了。

示例:nohup 命令 参数 >/dev/null &

2>&1错误输出 

有一种很流行的命令格式是:nohup 命令 参数 >/dev/null 2>&1 &,比上面多了个2>&1。2是错误信息输出 ,1是标准信息输出。>/dev/null是将1放进黑洞, 2>&1是将2放进1,最终都进入黑洞。我们要搞清楚,2并不是程序运行时的异常日志,而是linux系统中的错误提示,比如nohup 命令中,这个命令我们输错,少打了一个字母,系统会立即给我们提示。而你加了 2>&1以后,这个错误提示就进入黑洞,你只能一脸茫然的干瞪眼。

查找和杀死进程

如何查找和杀死在后台终始运行的进程,参考第11

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值