杀死分离的屏幕会话

Tim*_*Tim 864 linux gnu-screen kill

我从某个地方学到了一个独立的屏幕可以被杀死

屏幕-X -S [会话#你要杀]杀

你可以从哪里得到[你要杀的会话#]

屏幕-ls.

但这不起作用.哪里不对了?什么是正确的方法?

inn*_*naM 1267

"杀死"只会杀死一个屏幕窗口.要"杀死"整个会话,请使用quit.

$ screen -X -S [session # you want to kill] quit
Run Code Online (Sandbox Code Playgroud)

  • 在ubuntu中输入'exit'(不带引号):P (112认同)
  • 在OSX上,在任何终端上输入`screen -X quit`会终止所有活动会话 (20认同)
  • `exit`有效,但需要在打开的每个屏幕中输入.`quit`甚至不起作用 (16认同)
  • Ctrl + D也有效 (5认同)
  • 如果你把它写成内联-X -S pid/sockname quit,@ kapad实际上就退出了 (4认同)

小智 499

您可以通过执行以下操作来终止在屏幕会话中没有响应的分离会话.

  1. 键入screen -list以标识分离的屏幕会话.

    ~$ screen -list  
        There are screens on:  
             20751.Melvin_Peter_V42  (Detached)  
    

    注意:20751.Melvin_Peter_V42是您的会话ID.

  2. 附加到分离的屏幕会话

    screen -r 20751.Melvin_Peter_V42
  3. 连接到会话后按Ctrl+ A然后键入:quit

  • 或:Ctrl + a,k (53认同)
  • 你可以使用没有全名的-r 20751屏幕 (20认同)

nil*_*loc 145

列表屏幕:

screen -list
Run Code Online (Sandbox Code Playgroud)

输出:

There is a screen on:
23536.pts-0.wdzee       (10/04/2012 08:40:45 AM)        (Detached)
1 Socket in /var/run/screen/S-root.
Run Code Online (Sandbox Code Playgroud)

杀死屏幕会话:

screen -S 23536 -X quit
Run Code Online (Sandbox Code Playgroud)


Hit*_*_99 113

当给出一些有意义的名字时,杀死一个会话会更容易:

//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit
Run Code Online (Sandbox Code Playgroud)


小智 43

您可以直接前往屏幕会话所在的位置并运行:

 screen -ls
Run Code Online (Sandbox Code Playgroud)

结果

 There is a screen on:
         26727.pts-0.devxxx      (Attached)
 1 Socket in /tmp/uscreens/S-xxx. <------ this is where the session is.
Run Code Online (Sandbox Code Playgroud)

然后删除它:

  1. cd /tmp/uscreens/S-xxx
  2. ls
  3. 26727.pts-0.devxxx
  4. rm 26727.pts-0.devxxx
  5. ls

uscreens目录将不再包含该26727.pts-0.devxxx文件.现在确保只需键入:

screen -ls

你应该得到:

在/ tmp/uscreens/S-xxx中找不到套接字.

  • 如果屏幕"卡住",这是唯一可行的解​​决方案,即.没有死,但不能依附. (4认同)

小智 29

screen -wipe
Run Code Online (Sandbox Code Playgroud)

应该清理所有屏会话.

  • 什么意思死了?没有运行任何程序? (11认同)

小智 23

将此添加到您的~/.bashrc:

alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"
Run Code Online (Sandbox Code Playgroud)

然后cleanscreen用来清理所有屏幕会话.

  • 一个简单的单行:`screen -ls | grep已分离| 切-d.-f1 | awk'{print $ 1}'| xargs杀死` (11认同)
  • 做了一个款待,但不得不稍微修改它以在OSX上工作:`screen -ls | 尾巴+2 | 头-2 | awk'{print $ 1}'| xargs -I {} screen -S {} -X quit` (3认同)

Nic*_*ers 21

对我来说简单

exit
Run Code Online (Sandbox Code Playgroud)

作品.这是在屏幕会话中.

  • 另外,ctrl + a`:quit` (2认同)
  • 还有,ctrl + a,然后是K. (2认同)

Ros*_*one 16

要终止所有分离的屏幕会话,请在.bash_profile中包含此函数:

killd () {
for session in $(screen -ls | grep -o '[0-9]\{5\}')
do
screen -S "${session}" -X quit;
done
}
Run Code Online (Sandbox Code Playgroud)

运行它,打电话 killd

  • 有时它不是5位数,所以我使用:killd(){for $ session(screen -ls | grep -o'[0-9]\+')do screen -S"$ {session}"-X quit; 完成了 (5认同)

dug*_*ggi 7

== ISSUE THIS COMMAND
[xxx@devxxx ~]$ screen -ls


== SCREEN RESPONDS
There are screens on:
        23487.pts-0.devxxx      (Detached)
        26727.pts-0.devxxx      (Attached)
2 Sockets in /tmp/uscreens/S-xxx.


== NOW KILL THE ONE YOU DONT WANT
[xxx@devxxx ~]$ screen -X -S 23487.pts-0.devxxx kill


== WANT PROOF?
[xxx@devxxx ~]$ screen -ls
There is a screen on:
        26727.pts-0.devxxx      (Attached)
1 Socket in /tmp/uscreens/S-xxx.
Run Code Online (Sandbox Code Playgroud)


dat*_*789 5

或者,在屏幕会话中,您只需键入exit即可

这将终止屏幕启动的shell会话,这有效地终止了您所在的屏幕会话.

无需担心屏幕会话ID等.