Bash

在正在執行的 shell 中排隊任務

  • October 9, 2017

我經常啟動一個綁定到 CPU、磁碟、RAM 或 Internet 連接的長時間執行的命令。當它執行時,我發現我想執行一個類似的命令。假設下載一些大的東西。

然後我啟動一個shellwget ...1並讓它執行。我可以打開另一個 shell 並執行另一個wget ...2,但現在他們會爭奪頻寬。當我只是在執行的 shell 中輸入第二個命令時,它稍後會執行,因為wget它不是互動式的。

有沒有一種合理的方法可以使用 Bash 或 Fish Shell 來做到這一點?

如果您已經wget http://first在前台執行,您可以使用CTRL+暫停它,z然後在它之後將其返回以使用另一個命令:

fg ; wget http://second

它應該在大多數情況下工作。

如果這種方式不可接受,您應該使用 lockfile。甚至只是通過ps(lockfile 更好)來監控程序。

您可能會發現Task Spooler很有幫助。

引用應用程序描述,

任務假離執行緒序是一個 Unix 批處理系統,其中假離線的任務一個接一個地執行。可以隨時設置一次執行的作業數量。每個系統中的每個使用者都有自己的作業隊列。任務從任何 shell/程序在正確的上下文(入隊的上下文)中執行,並且可以輕鬆查看其輸出/結果。

引用自:https://unix.stackexchange.com/questions/132068