我可以更改“nohup.out”的名称吗?

Posted

技术标签:

【中文标题】我可以更改“nohup.out”的名称吗?【英文标题】:Can I change the name of `nohup.out`? 【发布时间】:2011-05-31 18:33:22 【问题描述】:

当我运行nohup some_command & 时,输出转到nohup.outman nohup 说看看info nohup 反过来说:

如果标准输出是终端,则 附加命令的标准输出 到文件“nohup.out”;如果说 无法写入,已附加 到文件'$HOME/nohup.out';而如果 无法写入的命令 没有运行。

但是,如果我已经有一个使用nohup 的命令,其输出将转到/nohup.out,并且我想运行另一个nohup 命令,我可以将输出重定向到nohup2.out 吗?

【问题讨论】:

您知道建议的答案是否还会将错误重定向到给定位置? 我个人发现做nohup python script.py > my_output.out & 更有用 【参考方案1】:

我的 start.sh 文件:

#/bin/bash

nohup forever -c php artisan your:command >>storage/logs/yourcommand.log 2>&1 &

只有一件重要的事情。第一个命令必须是“nohup”,第二个命令必须是“永远”,“-c”参数是永远的参数,“2>&1 &”区域是“nohup”。运行此行后,您可以从终端注销,重新登录并运行“forever restartall”瞧……您可以重新启动,并且可以确定如果脚本停止,那么将永远重新启动它。

【讨论】:

这也重定向stderr吗?我想指导一切,无论是错误还是输出到单一来源。【参考方案2】:
nohup some_command &> nohup2.out &

瞧瞧。


Bash 版本

nohup some_command > nohup2.out 2>&1 &

【讨论】:

@ismail,如果我理解的话,这会将输出从 stdout 和 nohup.out 引导到 nohup2.out。那么2>&1& 是做什么的呢? 2>&1stderr 重定向到与stdout 相同的输出文件,在本例中为nohup2.out 在 Bash 4 中,两个重定向可以缩写为一个 &> nohup2.out 我试过 &> nohup2.out 并且它有效,但是你怎么知道你的 bash 版本? @monkut 只需在 bash 中输入 help 也可以。或help | grep version。我更容易记住。【参考方案3】:

只要您在 nohup 命令上方运行,上述方法就会删除您的输出文件数据。

在用户定义的文件中追加输出,您可以在 nohup 命令中使用>>

nohup your_command >> filename.out &

此命令将追加文件中的所有输出,而不删除旧数据。

【讨论】:

这也重定向stderr吗?我想指导一切,无论是错误还是输出到单一来源。【参考方案4】:

由于文件处理程序指向 Linux/Unix 系统上的 i-nodes(独立于文件名存储),因此您可以在启动 nohup something& 后随时将默认 nohup.out 重命名为任何其他文件名。因此,也可以执行以下操作:

$ nohup something&
$ mv nohup.out nohup2.out
$ nohup something2&

现在something 将行添加到nohup2.outsomething2nohup.out

【讨论】:

这也重定向stderr吗?我想指导一切,无论是错误还是输出到单一来源。 @CharlieParker 其实你可以。见***.com/questions/12820616/…【参考方案5】:

由于某种原因,上述答案对我不起作用;运行它后,我没有返回到命令提示符,正如我对尾随 & 所期望的那样。相反,我只是尝试了

nohup some_command > nohup2.out&

它就像我想要的那样工作。将其留在这里以防其他人处于相同情况。运行 Bash 4.3.8 以供参考。

【讨论】:

这也重定向stderr吗?我想指导一切,无论是错误还是输出到单一来源。

以上是关于我可以更改“nohup.out”的名称吗?的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统不停止服务,清空nohup.out文件

nohup命令

linux下cat /dev/null > nohup.out命令把nohup.out文件清空,但是查硬盘容量是却毫无变化

Linux部署Django:报错 nohup: ignoring input and appending output to ‘nohup.out’

如何在不获取 nohup.out 的情况下使用 nohup 命令?

Linux之nohup命令