【问题标题】:How do I suppress the output of multiple commands whose output each run infinitely?如何抑制每个输出无限运行的多个命令的输出?
【发布时间】:2017-07-18 23:51:30
【问题描述】:

假设我有两个要在 Linux 中运行的命令:cmd1、cmd2 和 cmd3。 cmd1 和 cmd2 都在控制台日志中提供输出,除非您手动执行,否则这些输出将永远运行。

通常,我会使用多个终端,尽管我在必须在后台运行每个终端的虚拟机上运行它们。

我尝试成功运行以下命令:

# nohup cmd1 > /dev/null 2>&1&
[1] pid1

但是如果我运行下一个命令:

# nohup cmd2 > /dev/null 2>&1&
[2] pid2
[1]   Exit 1                 nohup cmd1 > /dev/null 2>&1

进程被 cmd1 杀死。然后稍后为cmd2:

[2]+  Exit 1                 nohup cmd2 > /dev/null 2>&1

有没有办法让两个命令的输出可以重定向到 /dev/null?

也许是一种复制 /dev/null 然后将每个命令输出抑制到每个 /dev/null 的方法?重要的是我可以在 cmd1 和 cmd2 之后运行 cmd3。

【问题讨论】:

  • zsh 下测试,我没有遇到和你一样的问题。 三个 dd if=/dev/urandom > /dev/null 2>&1 实例能够同时运行就好了。

标签: linux


【解决方案1】:

同时使用相同的 /dev/null 运行多个命令是非常好的。 也许您的 cmd1 和 cmd2 程序有一些相互不能容忍的依赖关系。最好再检查一遍 我已经在 bash shell 中测试过

See the attachment

【讨论】:

    【解决方案2】:

    我发现了问题。显然,这些命令进程由于缺少 cmd1 和 cmd2 的一些配置而终止;缺少该配置会终止这两个命令。

    Tung Vs 是正确的。您可以同时在 /dev/null 上运行多个命令。

    【讨论】:

      猜你喜欢
      • 2012-07-12
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 2015-12-22
      • 2016-11-26
      • 2012-01-05
      • 2013-04-08
      • 2019-04-28
      相关资源
      最近更新 更多