>/dev/null 2>&1 & 和-daemon和2>&1 &对比

我一直对于bash的这些命令很模糊,在线上运维过程中,也只是每次有需求就去百度一下,没有总结,果然收获不大,现在写个博文总结一下。

bash基础:

  1. 重定向  >
  2. 0,1,2分别表示标准输入,标准输出,标准错误
  3. 守护进程
  • >/dev/null 2>&1 &

    • linux中有一类特殊的文件,就像一个无敌洞,重定向到这个文件的数据会消息的无影无踪,因此可以通过这个来丢弃一些不需要的信息。但是慎用,你可能会错过一些有用的日志信息。
    • 中间的&表示重定向到标准输出,而不是一个叫1的文件
    • 最后的&表示这个bash命令在后台运行
    • 结论:bash命令后台运行,将标准输出重定向到标准输出,将标准输出重定向到空,因此这个bash命令的输出在窗口中什么都没有。
  • -daemon

    • 参考链接:http://www.ruanyifeng.com/blog/2016/02/linux-daemon.htmll
    • 守护进程就是一直在后台运行的进程。
    • 第一步:在命令的尾部加上&,使其在后台运行,成为一种服务。
      • 不能接受标准输入,标准输出将会同步在终端显示
    • 变成后台任务,并一定是守护进程吗?当当前session退出后,后台进程是否会继续执行妈?这取决于shell的huponexit参数
      • 该参数默认是关闭的,session退出后,不发送sighup信号给后台任务
    • 那如果参数是打开的呢?于是我们可以使用nohup命令
      • nohup命令不会将进程变成后台进程,因此需要加上& 例如:nohup server.js &
      • nohup将子进程与session分离,关闭标准输入,将标准输出重定向到nohup.out
    • 结论:nohup+&变成守护进程
  • 2>&1 &

    • 结论:后台运行,将标准错误定位到标准输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值