我nohup经常在linux/下用于重要的长时间运行的进程bash,以至于这nohup time my command with arguments && mv nohup.out my.log对我来说几乎是一个习语。
问题是nohup将stdout和 都stderr放入nohup.out,我无法控制文件的名称。这意味着如果我不小心nohup在同一个目录中启动了两个s,它们的输出将在nohup.out.
问题是:
我该如何处理这个问题?总是nohup在不同的目录中运行s 并编写一个首先检查的 shell 函数,这./nohup.out是我看到的两个糟糕的选项。
为什么我不知道nohup将输出重定向到哪里?GNU 工具往往有这么多的选择,为什么不nohup呢?
您可以将 stdout 和 stderr都重定向到一个文件。使用 Bash 4(或其他如 Zsh),就像:
nohup <some-command> &> output.log
Run Code Online (Sandbox Code Playgroud)
我不能告诉你为什么没有单独的选项nohup来设置输出,但是如果你的 shell 可以处理这个,你真的不需要一个选项。
要在用户定义的文件中附加输出,您可以>>在 nohup 命令中使用。
nohup php your_command >> filename.out 2>&1 &
Run Code Online (Sandbox Code Playgroud)
此命令将在您的文件中附加所有输出,而不会删除旧数据。
| 归档时间: |
|
| 查看次数: |
28090 次 |
| 最近记录: |