如何解决如何在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。