将ctrl-c发送到特定的屏幕会话

时间:2013-04-14 16:48:03

标签: shell gnu-screen sigint

我正在设计一个脚本来在命名的屏幕会话中启动进程。

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

因此bash myscript.sh start test将创建一个名为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'"

1 个答案:

答案 0 :(得分:17)

我不太了解你,只是在屏幕会话中将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