2017-07-18 64 views
0

假设我有两个在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。

+0

在'zsh'下测试,我没有遇到同样的问题。 * dd if =/dev/urandom>/dev/null 2>&1'的三个*实例可以同时运行。 – Bytewave

回答

0

同时使用相同的/ dev/null运行多个命令是完全正确的。 也许你的cmd1和cmd2程序有一些不能互相容忍的依赖关系。这将是更好地再次检查 我在bash的测试壳

See the attachment

0

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

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