Gnu-Screen

從外部向螢幕會話發送輸入

  • September 22, 2021

我的情況是這樣的:

我有一個在遠端位置執行的螢幕會話。這個螢幕裡面是一個基於控制台的程序。當不帶螢幕執行時,該程序在終端中啟動並在其標準輸入上接受命令。

我想要的是一種遠端向螢幕發送命令的方法,以便控制台程序接收到該命令。也許是這樣的:

我的電腦 -> SSH 自動發送消息 -> 螢幕會話 -> 程序(收到執行命令)

因此,我可以從遠端 PC 上通過 SSH 命令將命令發送到將它們發送到程序的螢幕。程序接受它們並執行它們。

如果我理解正確,您想將輸入發送到在螢幕會話中執行的程序。您可以使用 screen 的stuff命令來執行此操作。使用螢幕的-X選項在螢幕會話中執行命令而不附加到它。

screen -S sessionname -p windowname -X stuff 'command1
command2
'

如果您想查看程序的輸出,請查看hardcopyloglogfile命令。

向分離的螢幕發送命令:

screen -S <screen_name> -X stuff "command blah blah blah\n"
  • 確保在命令末尾有“\n”。如果您不附加“\n”,則命令將被發送但不會啟動。

旁注:如果您想留下screen您所在的 a 而不結束它,請使用以下鍵綁定快捷方式從中分離ctrl + a + d:( C-a-d)

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