#深入解析# linux中后台启动程序 nohup 命令

简单来说,nohup 表示当前用户和系统的会话下的进程忽略响应HUP消息,也就是不挂断地运行命令。
下面结合一个具体命令进行分析:

nohup command>/dev/null 2>&1 &

首先对上述命令的几个关键字进行解释:

  • /dev/null 表示空设备文件
  • & 符号是把该命令以后台的job的形式运行。
  • 0 表示stdin标准输入
  • 1 表示stdout标准输出
  • 2 表示stderr标准错误输出
  1. 其中/dev/null表示一个空设备,而 command>/dev/null 等价于 command 1>/dev/null (标准输入1可以省略),表示把 command 的执行结果重定向到空设备中,换句话说就是不显示任何信息
  2. 2>&1 表示将stderr标准错误(2)重定向到 stdin标准输入(1)上 ,(符号 & 怎么理解都好,主要作用是区别 2>&12>1,后者表示将标准错误输出输出到名为“1”的文件中)
  3. 结合上述两个操作,最后将所有输出都重定向到了空设备文件

再来一个示例:

nohup python -u main.py 2>&1 >log &

有了上边的基础,这里就好理解了
这里表示 将 main.py 文件运行时输出的内容(标准输出和错误输出)输出到 名为 “log” 的文件中,
这里和上边有两点不同:

  1. 多了 -u 参数,-u 是 python 编译器的参数,python编译器默认情况下将标准输出默认需要缓存后再输出到屏幕,而标准错误则直接打印到屏幕。使用 -u 参数后,python编译器会将标准输出和标准错误都直接打印到屏幕上。
  2. 上个示例中的 /dev/null 换成了 log ,表示输出到名为 “log” 的 文件中

linux 中 nohup 和 & 关键字的区别请看这篇文章 ->#深入解析# linux 中 & 和 nohup 命令的区别

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

energy_百分百

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值