Bash當我執行
當我執行./command.sh &
時,後台任務被掛起。我怎樣才能讓它繼續執行?
這就是我正在執行的:
alexandma@ALEXANDMA-1-MBP ./command.sh & [2] 30374 alexandma@ALEXANDMA-1-MBP [2] + suspended (tty output) ./command.sh
我不希望它開始暫停,我希望它繼續在後台執行。我將在一個循環中執行一堆這些,所以我需要一些能以這種方式工作的東西。
我怎樣才能讓它繼續執行?
由於給出的原因,它停止了:它試圖輸出到 tty。
./command.sh
如果支持,您可以嘗試重定向輸出,或者在它自己的視窗tmux
或視窗中執行命令。screen
例如tmux new-window -n "window name" ./command.sh
然後查看使用創建
tmux list-windows
並附加到tmux
的視窗列表tmux attach
。這樣程序仍然會等待輸入/輸出發生,但是一旦您轉到相應的視窗,您就可以輕鬆地提供輸入,並且輸出將被擷取而無需任何活動。
在 Anthon 的解釋中添加一個細節:
寫入後台程序並不總是停止。這取決於終端設置
tostop
。stty tostop stty -tostop
可用於切換此設置。因此,如果您希望後台程序寫入“另一個程序的”終端,那麼您可以保持它執行但不需要
tmux
,screen
或類似的。