如何在Linux中停止屏幕进程?

| 我正在远程服务器上运行脚本。我在ѭ0中运行了脚本,但是由于需要更新脚本,因此需要在脚本完成之前将其停止。我可以轻松地脱离
screen
,但是,有没有办法杀死
screen
进程呢?     
已邀请:
        Ctrl + a,然后按“ k”将终止屏幕会话。     
        有两种“屏幕”方式可从命令行(非交互式)终止特定的屏幕会话。 1)发送\'quit \'命令:
screen -X -S \"sessionname\" quit
2)将Ctrl-C发送到运行脚本的屏幕会话:
screen -X -S \"sessionname\" stuff \"^C\"
在这两种情况下,您都需要使用\'screen -ls \'来查找要终止的屏幕会话的会话名称...如果仅运行一个屏幕会话,则无需指定-S \“ sessionname \”参数。     
        我用它来退出由一个有问题的命令创建的数百个错误的屏幕会话:
for s in $(screen -ls|grep -o -P \"1\\d+.tty\"); do screen -X -S $s quit; done;
其中:
grep -o -P \"1\\d+.tty\"
是使用类似于Perl的名称正则表达式
\"1\\d+.tty\"
来获取会话名称的命令,该会话名称捕获所有以
1
开头,还有一些其他数字(
\\d
)并以
.tty
结尾的会话 警告: 在应用上述命令之前,您应该首先使用此命令进行测试,以查看获得所需会话的确切列表。这是为了避免退出不需要的会话:
for s in $(screen -ls|grep -o -P \"1\\d+.tty\"); do echo $s; done;
每当
for
循环中的列表不清楚时,我都会一直进行
echo
测试,例如
$()
扩展中的子命令生成的列表。     
        以前的答案在winputty终端和amazon ssh服务器连接上对我不起作用..但这确实起作用:
screen -S yourscreentitlehere -X stuff $\'\\003\'
参考资料: 将ctrl-c发送到特定的屏幕会话 $ \'\\ 003 \'是ctrl + c http://donsnotes.com/tech/charsets/ascii.html 东西是https://www.gnu.org/software/screen/manual/screen.html#Paste     

要回复问题请先登录注册