【问题标题】:GNU screen quit and killall processesGNU 屏幕退出并杀死所有进程
【发布时间】:2013-12-19 17:53:23
【问题描述】:

我已经创建了一个 .screenrc 配置文件来为我正在处理的内容设置一些分屏内容,并且我已经绑定 ctrl+d 来退出它,但它只会退出屏幕,并让实际进程继续运行。 这是我的 .screenrc 文件 atm 的绑定键部分,有没有办法我可以调整它以便它也杀死进程?

bindkey ^D quit

顺便说一句,它需要退出并杀死多个分屏,这可能会增加它的复杂性。 最终,我想将它绑定到 Ctrl+C 或 Ctrl+D,无论哪种方式都是退出此脚本的快速方法,因为它是加载此自定义 .screenrc 文件的自定义脚本。 谢谢。

【问题讨论】:

    标签: terminal gnu tmux gnu-screen


    【解决方案1】:

    不确定您是否知道屏幕 ctrl a 功能

    ctrl a c to create a new screen
    
    ctrl a a or [0-9] to run through connections
    
    ctrl a d to detach 
    

    你可以在哪里使用

     screen -r -d to re-attach
    

    我认为你需要

    ctrl a \ 
    

    这将尝试退出屏幕会话并提示您是否希望全部取消

    【讨论】:

    • 谢谢@vahid,我试过 ctrl a \ 并退出,但它似乎并没有杀死它启动的进程。例如。我在屏幕窗口中运行了一个 make 任务,我使用 ctrl a \ 退出,然后退出,但如果我然后运行 ​​ps aux | grep make 我仍然可以看到该过程。有没有办法在我退出时强制它杀死这些?
    • 我只是在测试这个,我认为这与任务是否已被制成自己的运行 pid 相关,例如 cat /etc/passwd && sleep 100 vs cat /etc/passwd && sleep 100& - 最后一个&符号将其设置为作为自己的工作运行...在这种情况下很难跟踪..您可以作为新用户筛选然后运行 ​​pkill -U newuser
    • 用特定用户打开屏幕然后杀死他们是个好主意,我现在就这样做谢谢!
    • 对不起,伙计,我正在考虑这个问题并想考虑替代方案,因为是的,如果我和我的脚本确实坚持执行 ps -elf 它返回 1 作为主进程.. 所以唯一的其他想法是,如果您使用与屏幕会话匹配的名称来调用这些屏幕脚本,即 screen-script1.sh 然后在退出时运行 pkill -f screen 这将杀死屏幕及其所有挂起的脚本
    猜你喜欢
    • 2021-12-06
    • 2013-03-27
    • 2013-07-27
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多