Gnu-Screen
從外部向螢幕會話發送輸入
我的情況是這樣的:
我有一個在遠端位置執行的螢幕會話。這個螢幕裡面是一個基於控制台的程序。當不帶螢幕執行時,該程序在終端中啟動並在其標準輸入上接受命令。
我想要的是一種遠端向螢幕發送命令的方法,以便控制台程序接收到該命令。也許是這樣的:
我的電腦 -> SSH 自動發送消息 -> 螢幕會話 -> 程序(收到執行命令)
因此,我可以從遠端 PC 上通過 SSH 命令將命令發送到將它們發送到程序的螢幕。程序接受它們並執行它們。
如果我理解正確,您想將輸入發送到在螢幕會話中執行的程序。您可以使用 screen 的
stuff
命令來執行此操作。使用螢幕的-X
選項在螢幕會話中執行命令而不附加到它。screen -S sessionname -p windowname -X stuff 'command1 command2 '
如果您想查看程序的輸出,請查看
hardcopy
、log
和logfile
命令。
向分離的螢幕發送命令:
screen -S <screen_name> -X stuff "command blah blah blah\n"
- 確保在命令末尾有“\n”。如果您不附加“\n”,則命令將被發送但不會啟動。
旁注:如果您想留下
screen
您所在的 a 而不結束它,請使用以下鍵綁定快捷方式從中分離ctrl + a + d
:(C-a-d
)