发送CTRL-C以特定的屏幕会话(Sending ctrl-c to specific screen

2019-08-23 01:20发布

我设计一个脚本来启动一个名为屏幕会话内的过程。

as_user "screen -p 0 -S **$command** -X eval 'stuff \"wine LFS.exe /cfg=**$command**.cfg\"\015'"

所以bash myscript.sh start test将创建一个名为屏幕测试和运行test.cfg与软件。

现在,我想我的脚本访问特定的屏幕会议,并做了CTRL + C停止正在运行的进程,所以我可以杀死屏幕会话。

事情是这样的:

as_user "screen -p 0 -S **$command** **... kill the process with ctrl-c...**"
as_user "screen -p 0 -S **$command** -X eval 'stuff \"exit\"\015'"

Answer 1:

我不太了解你,但发送ctrl-c屏幕会话的窗口

screen -S session_name -X at window_number stuff $'\003'
# or
screen -S session_name -X -p window_number stuff $'\003'

如果你想送东西给所有的窗口,使用# (需要加引号)作为window_number

更新:

屏幕的stuff命令还支持^X (或^x )是指CTRL-X因此下面的命令也可以用来发送CTRL-C

screen -S session_name -X at window_number stuff ^C


文章来源: Sending ctrl-c to specific screen session