我可以更改`nohup.out`的名字吗?

时间:2010-12-28 21:03:32

标签: bash logging nohup

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

  

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

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

5 个答案:

答案 0 :(得分:367)

nohup some_command &> nohup2.out&

瞧。


Bash版本的旧语法< 4:

nohup some_command > nohup2.out 2>&1&

答案 1 :(得分:55)

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

nohup some_command > nohup2.out&

它就像我想要的那样工作。离开这里以防万一其他人处于相同的情况。运行Bash 4.3.8作为参考。

答案 2 :(得分:12)

由于文件处理程序指向Linux / Unix系统上的i节点(独立于文件名存储)您可以在启动nohup.out之后随时将默认nohup something&重命名为任何其他文件名。所以也可以做到以下几点:

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

现在something将行nohup2.outsomething2添加到nohup.out

答案 3 :(得分:9)

无论何时运行nohup命令,上述方法都会删除输出文件数据。

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

nohup your_command >> filename.out &

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

答案 4 :(得分:0)

我的 start.sh 文件:

 let rightBtn = UIBarButtonItem(image: UIImage(named: "BackArrow"), style: .done, target: self, action: #selector(actnClose))
 rightBtn.imageInsets = UIEdgeInsets(top: 0, left: -12, bottom: 0, right: 0)
    
 self.navigationItem.setLeftBarButton(rightBtn, animated: true)

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

我<3永远