用bash腳本創建screen並向其發送命令

什麼是screen?

GNU Screen是一款由GNU計劃開發的用於命令行終端切換的自由軟件。用戶可以通過該軟件同時連接多個本地或遠程的命令行會話,並在其間自由切換。 GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。

爲什麼要用腳本創建screen?

爲了利用服務器的多個cpu,我們經常需要同時創建多個screen,如果screen的個數非常多,手動創建會非常麻煩。

如何用bash腳本創建screen並向其發送命令?

如果我們直接在腳本里寫 screen -S my_screen, 會導致腳本無法繼續執行。爲了使腳本執行下去,創建screen的具體代碼如下:

screen_name=$"my_screen"  
screen -dmS $screen_name  

現在,我們就已經創建了一個名爲 my_screen 的窗口。然後,我們需要向其發送具體的命令。我們用如下命令:

cmd=$"java Test";  
screen -x -S $screen_name -p 0 -X stuff "$cmd"  
screen -x -S $screen_name -p 0 -X stuff $'\n'  

這樣,我們就向screen發送了一條java Test命令了。 如果要退出窗口,則再向其發送一條 exit 命令即可

注意

這種方式發送的命令不能太長,否則會導致腳本卡住。 如果需要發送一條很長的命令,或者連續發送許多條命令,最好單獨寫一個腳本,發送一個腳本命令給screen,讓screen執行新的腳本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章