首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nohup附加输出和错误而不是覆盖

Nohup附加输出和错误而不是覆盖
EN

Stack Overflow用户
提问于 2012-04-16 14:50:26
回答 2查看 6.9K关注 0票数 2

我使用nohup将java输出和错误附加到相同的日志文件中。问题是它写入一个输出,然后覆盖日志文件中的错误,输出被擦除。

nohup命令是

代码语言:javascript
运行
复制
nohup java Daemon 1000 >logs/wrapper.log 2>logs/wrapper.log &

这是我要从Daemon.java登录wrapper.log的消息

代码语言:javascript
运行
复制
System.out.println("This is output that should go to the file");

System.err.println("This is error that should go to the file");

但只有最后一条消息被写入文件中。最合理的答案是知道如何追加输出和错误的wrapper.log,而不是覆盖

有什么想法吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-16 15:22:40

最可移植的(也是我首选的方法)是:

代码语言:javascript
运行
复制
cmd >>logs/wrapper.log 2>&1 &

打开带有O_APPEND标志的>>FD重定向。cello的答案是bashism (以及大多数kshes和zsh)同时重定向stdout和stderr,但不能解决在append模式下打开的问题。

请参阅:http://mywiki.wooledge.org/BashPitfalls#somecmd_2.3E.261_.3Elogfile和关联链接

编辑:我发现这实际上并没有解决附加问题。我将编辑该页面。这些链接仍然是相关的。

票数 4
EN

Stack Overflow用户

发布于 2012-04-16 15:05:30

最有可能的情况是,错误输出会覆盖标准输出,因为两个文件都写入同一文件。尝试如下所示:nohup java Daemon 1000 &> logs/wrapper.log &

&>可以在一些shell上运行(bash在任何情况下,不确定tcsh/zsh/...),所以尝试一下或者让我们知道您使用的是哪个shell。

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

https://stackoverflow.com/questions/10169789

复制
相关文章

相似问题

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