2017-07-18 67 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上運行多個命令。