[Ubuntu] 如何在背景建立 Screen 終端機與發送指令至指定窗口

我的目的是要寫出一個 Bash Script 能一次建立多個 Screen 會話並且發送指令至指定窗口中。比如說在一個 Linux 伺服器上面架設 Minecraft 伺服器,如果要讓 Minecraft 伺服器持續的運行,大部分人都會使用 Screen 套件來達成。只不過每一次都要手動去 screen -S minecraft 新增窗口並且輸入 Java 的啟動指令非常的麻煩,我就想來試試看能不能做到「一鍵啟動」。

一般我們新增 Screen 用的指令是 screen -S example,新增之後他都會自動進入 example 窗口內。而我們要讓他建立 Screen 後而不自動進入的話要使用這個指令:

screen -dmS example

要確認有沒有成功的話可以輸入 screen -list 來確認。

之後我們要發送一段指令到 example 裡面並且讓他執行。在這裡我就用一個套件 htop 的指令來當作範例,htop 算是一個比較好看且能取代 top 指令的工作管理員,個人覺得蠻好用的。

用這個指令就能發送 htop 指令到 example 裡面。指令最後的「^M」的意思等於鍵盤上面的 Enter,也就是讓電腦知道要把這指令送出去的符號。

screen -S example -X stuff htop^M

Tip. 這個指令的格式是 screen -S [名稱] -X stuff [指令],stuff 並不是 htop 的指令,是一個必要的參數。

可以輸入指令 screen -r example 進去檢查看看 htop 是否有如你想像的一樣啟動了。( 只截到這個歪掉的畫面 = = )

最後把以上指令寫成一個 Bash Script

修改權限後就能用 ./example_start 執行囉!

chmod a+x example_start

您可能也會喜歡…

發表迴響