Job-Control
如何將程序移到後台並使其輸出靜音?
假設我在終端中啟動了一個程序,它在執行時將輸出發送到標準錯誤。我想把這個過程移到後台,同時讓它靜音。
有沒有辦法在不停止程序並使用
&
and再次啟動它的情況下做到這一點> /dev/null 2>&1
?我想知道是否有一些命令可以執行bg
並且也可以更改目標程序的輸出描述符。
太晚了。程序啟動後,shell 不再控制程序文件描述符,因此您無法通過 shell 命令使其靜音。
你只能嘗試殺死一個
SIGHUP
程序。如果您的程序正確處理它,它應該與控制 tty分離。不幸的是,許多軟體沒有正確處理它並且乾脆死了。
從終端執行的程序將其 stdin、stdout 和 stderr 綁定到終端,如果不重新獲得對該終端的控制權,您將無法對其執行任何操作…通常。但是有一些棘手的工具實際上可以讓你做到這一點。看看這個例子。
retty
和那裡提到的其他程序。