Убить сеанс разделенного экрана

Я откуда-то узнал, что отсоединенный экран может быть убит

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

где [номер сессии, которую вы хотите убить] можно получить из

screen -ls

Но это не работает. Что-то не так? Какой способ правильный?

Комментарии к вопросу (8)
Решение

"kill" уничтожит только одно окно экрана. Чтобы "убить" всю сессию, используйте quit.

Пример

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

Для мертвых сессий используйте: $ screen -wipe

Комментарии (8)

Вы можете завершить отделенный сеанс, который не отвечает в рамках экранного сеанса, выполнив следующие действия.

  1. Введите screen -list, чтобы определить отсоединенный сеанс экрана.

     ~$ screen -list
         Есть экраны на:  
              20751.Melvin_Peter_V42 (Отсоединен)
     
    Примечание: `20751.Melvin_Peter_V42` - это идентификатор вашей сессии.
  2. Прикрепитесь к отсоединенной экранной сессии

    screen -r 20751.Melvin_Peter_V42
  3. После подключения к сессии нажмите Ctrl + A, затем введите :quit.

Комментарии (4)

Список экранов:

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
Комментарии (1)

Это'легче убить сессии, когда какое-то осмысленное название это дано:

//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit
Комментарии (2)

Вы можете просто пойти в то место, где проходит сессия экраном расположен и запустить:

 screen -ls

какие результаты в


 There is a screen on:
         26727.pts-0.devxxx      (Attached)
 1 Socket in /tmp/uscreens/S-xxx. 
Комментарии (2)
screen -wipe

Должны очистить все умер сеансы экране.

Комментарии (2)

добавьте это в ваш~/.bashrc следующее`:

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

Затем использовать cleanscreen, чтобы очистить все сессии экрана.

Комментарии (3)

Для меня простой

exit

работает. Это из экранной сессии.

Комментарии (3)

Чтобы убить все отдельно стоящее сеансов экрана, включают эту функцию в свои .файл:

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

чтобы запустить его, называем killd`

Комментарии (1)
== 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.
Комментарии (2)

Кроме того, во время сеанса на экране все, что вам нужно сделать, это типа выход

Это убьет сеанса, инициированного экран, который эффективно завершает сеанс экране вы находитесь.

Не нужно возиться с экрана идентификатор сессии и т. д.

Комментарии (0)