Я откуда-то узнал, что отсоединенный экран может быть убит
screen -X -S [session # you want to kill] kill
где [номер сессии, которую вы хотите убить] можно получить из
screen -ls
Но это не работает. Что-то не так? Какой способ правильный?
"kill" уничтожит только одно окно экрана. Чтобы "убить" всю сессию, используйте quit
.
$ screen -X -S [session # you want to kill] quit
Для мертвых сессий используйте: $ screen -wipe
Вы можете завершить отделенный сеанс, который не отвечает в рамках экранного сеанса, выполнив следующие действия.
Введите screen -list
, чтобы определить отсоединенный сеанс экрана.
~$ screen -list Есть экраны на: 20751.Melvin_Peter_V42 (Отсоединен)Примечание: `20751.Melvin_Peter_V42` - это идентификатор вашей сессии.
Прикрепитесь к отсоединенной экранной сессии
screen -r 20751.Melvin_Peter_V42
После подключения к сессии нажмите Ctrl + A, затем введите :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.
И просто удалите его:
В каталоге uscreens не будет
26727.оч-0.больше файл devxxx в нем. Теперь, чтобы убедиться, просто введите:
экран -Общ`
и вы должны сделать:
нет розетки, найденных в каталоге /tmp/uscreens/с-ххх.
screen -wipe
Должны очистить все умер сеансы экране.
добавьте это в ваш~/.bashrc следующее`:
alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"
Затем использовать cleanscreen
, чтобы очистить все сессии экрана.
Для меня простой
exit
работает. Это из экранной сессии.
Чтобы убить все отдельно стоящее сеансов экрана, включают эту функцию в свои .файл:
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.
Кроме того, во время сеанса на экране все, что вам нужно сделать, это типа выход
Это убьет сеанса, инициированного экран, который эффективно завершает сеанс экране вы находитесь.
Не нужно возиться с экрана идентификатор сессии и т. д.