我使用結構在服務器上運行編譯,服務器是Linux,客戶端是Windows,通道是SSH。fabric.api.run將stderr轉換爲標準輸出爲SSH
- 在服務器'scons'上打印到stderr的編譯錯誤。沒關係。
- 但是,從客戶端執行的fabric.api.run('scons')會將編譯錯誤輸出到STDOUT。這不好,正因爲如此,我的IDE沒有檢測到它們。
我使用結構在服務器上運行編譯,服務器是Linux,客戶端是Windows,通道是SSH。fabric.api.run將stderr轉換爲標準輸出爲SSH
默認情況下,fabric.api.run
結合輸出和錯誤,以相同的流。正如@miku所說,在fabric 1.0中,您可以禁用此行爲設置combine_stderr=False
。備選地,只是stderr重定向到/ dev/null的
run('scons 2>/dev/null')
只有在織物1.0 – grep 2011-03-16 08:08:51
修復程序後[52b41ff01ca352a9d63b76946d1f20a61cc3ecae](https://github.com/vvavrychuk/fabric/commit/52b41ff01ca352a9d63b76946d1f20a61cc3ecae)這個參數生效。 但我仍然調試,直到面料/ paramiko,直到我看到沒有MSG_CHANNEL_EXTENDED_DATA消息從服務器應該承載stderr。只有MSG_CHANNEL_DATA包含stdout和stderr。 我懷疑這是OpenSSH服務器問題。你能幫忙嗎? – 2011-03-16 20:19:52