Bash
在正在執行的 shell 中排隊任務
我經常啟動一個綁定到 CPU、磁碟、RAM 或 Internet 連接的長時間執行的命令。當它執行時,我發現我想執行一個類似的命令。假設下載一些大的東西。
然後我啟動一個shell
wget ...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/程序在正確的上下文(入隊的上下文)中執行,並且可以輕鬆查看其輸出/結果。