首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向到使用nohup和管道的文件问题

问重定向到使用nohup和管道的文件问题
EN

Unix & Linux用户
提问于 2013-05-08 22:37:14
回答 1查看 5.6K关注 0票数 2

对于以下命令:

代码语言:javascript
复制
ssh -t esolve@hostname 'sudo nohup bash -c "ls > log 2>&1 &"'

我总是收到错误信息:

代码语言:javascript
复制
       nohup: ignoring input and appending output to `nohup.out'

为什么会发生这种情况,以及如何避免这些错误信息?

此外,在以下(我使用它来启用输出到屏幕和文件),

代码语言:javascript
复制
   stdbuf -o 0 command|& tee logfile

&是用来干什么的?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2013-05-08 23:00:02

碰巧,在nohup下运行的命令从未写入stdout或stderr,也没有向其发送任何输入。但是nohup无法知道这一点,因此它告诉您,任何输入都将被丢弃,任何输出都将被写入nohup.out。

为了避免这种情况,将nohup的S的stdin、stdout和stderr重定向到/dev/null。

代码语言:javascript
复制
ssh -t esolve@hostname 'sudo nohup bash -c "ls > log 2>&1 &" </dev/null >/dev/null 2>/dev/null'

至于|&,来自巴什手册:

管道的格式是-p[时间] command1 [ E76f{或} command2…]。管道中每个命令的输出通过管道连接到下一个命令的输入。也就是说,每个命令都读取前面命令的输出。此连接在命令指定的任何重定向之前执行。如果使用|&,则command1的标准误差通过管道连接到command2的S标准输入,它是2>&1 |的缩写。

这是一个bash扩展,也出现在zsh中。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/75176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档