Gnu-Screen
以程式方式在分屏中執行後台任務?
我試圖弄清楚如何創建一個名為的命令,該命令
runbg
將接受子命令在後台執行並為每個子命令創建一個分屏。當一個子命令成功完成後,分屏關閉;如果子命令失敗,則螢幕保持打開並顯示錯誤,直到使用者使用終止信號關閉螢幕。關閉所有螢幕後,命令完成並繼續執行。例如runbg "ping -t 5 google.com" "ping -t 10 microsoft.com" echo "done"
我發現我可以做到:
ping -t 5 google.com & ping -t 10 microsoft.com & wait
這完成了事情的並行方面,但是每個命令都將所有內容輸出到同一個終端,這非常嘈雜。因此需要分屏設置。
從這裡搜尋,我發現GNU Screen似乎可以處理螢幕方面的事情,但它似乎需要一個 .screenrc 文件 - 雖然可以通過程式方式完成,但有點煩人,正如我想像的那樣我需要在某處寫一個隨機的 tmp 文件。
我找到了這個答案,它可以在沒有使用螢幕的情況下使用,
.sreenrc
但是我無法弄清楚如何在其中執行分屏操作。簡而言之:
- 有沒有什麼東西已經完成了我想要的功能
runbg
?- 如果不是,那麼 GNU Screen 是我想要的嗎?我是否需要使用
.screenrc
文件,或者有沒有辦法在沒有文件的情況下完成分屏?
您可以使用 tmux 將拆分視窗和發送鍵串在一起,如下所示:
tmux new session \; split-window -v \; send-keys 'ping -t 5 google.com' C-m \; split-window -h \; send-keys 'ping -t 10 microsoft.com' C-m \;