我可以更改“nohup.out”的名称吗?
Posted
技术标签:
【中文标题】我可以更改“nohup.out”的名称吗?【英文标题】:Can I change the name of `nohup.out`? 【发布时间】:2011-05-31 18:33:22 【问题描述】:当我运行nohup some_command &
时,输出转到nohup.out
; man 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>&1
将stderr
重定向到与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.out
和something2
到nohup.out
。
【讨论】:
这也重定向stderr吗?我想指导一切,无论是错误还是输出到单一来源。 @CharlieParker 其实你可以。见***.com/questions/12820616/…【参考方案5】:由于某种原因,上述答案对我不起作用;运行它后,我没有返回到命令提示符,正如我对尾随 & 所期望的那样。相反,我只是尝试了
nohup some_command > nohup2.out&
它就像我想要的那样工作。将其留在这里以防其他人处于相同情况。运行 Bash 4.3.8 以供参考。
【讨论】:
这也重定向stderr吗?我想指导一切,无论是错误还是输出到单一来源。以上是关于我可以更改“nohup.out”的名称吗?的主要内容,如果未能解决你的问题,请参考以下文章
linux下cat /dev/null > nohup.out命令把nohup.out文件清空,但是查硬盘容量是却毫无变化
Linux部署Django:报错 nohup: ignoring input and appending output to ‘nohup.out’