杀孤立屏幕会议

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

screen -X -S [你要杀的会话#] kill

你可以从哪里获得[想要杀死的会话]

屏幕-ls。

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

“杀”只会杀死一个屏幕窗口。 要“杀死”完整的会话,请使用quit

 $ screen -X -S [session # you want to kill] quit 

您可以通过执行以下操作来终止屏幕会话中未响应的分离会话。

  1. inputscreen -list来标识分离的屏幕会话。

     〜$ screen -list  
        有以下屏幕:  
              20751.Melvin_Peter_V42(独立)  
    

    注意: 20751.Melvin_Peter_V42是你的会话ID。

  2. 连接到分离的屏幕会话

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

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

 //Creation: screen -S some_name proc // Kill detached session screen -S some_name -X quit 

列表屏幕:

 screen -list 

输出:

 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. 

杀屏幕会议:

 screen -S 23536 -X quit 

你可以去屏幕会话的地方并运行:

  screen -ls 

这导致了

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

只要删除它:

  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文件。 现在确保input:

screen -ls

你应该得到:

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

 screen -wipe 

应该清理所有屏幕会话。

对我来说简单

 exit 

作品。 这是来自屏幕会话。

把这个添加到你的~/.bashrc

 alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit" 

然后使用cleanscreen清理所有屏幕会话。

要杀死所有分离的屏幕会话,请在.bash_profile中包含此function:

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

运行它,调用killd

 == 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. 

另外,在你的屏幕会话中,你所要做的就是inputexit

这将杀死屏幕启动的shell会话,这会有效地终止您所在的屏幕会话。

无需打扰屏幕会话ID等