当我运行nohup some_command &
时,输出转到nohup.out
; man nohup
说看info nohup
反过来说:
如果标准输出是终端,则 命令的标准输出被追加 到'nohup.out'文件;如果说 无法写入,附加 到'$ HOME / nohup.out'文件;而如果 无法写入的命令 没有跑。
但是如果我已经有一个使用nohup
的命令,输出转到/nohup.out
并且我想运行另一个nohup
命令,我可以将输出重定向到nohup2.out
?
答案 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.out
和something2
添加到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永远