Прервать сеанс просмотра экрана

Я пытаюсь прервать сеанс просмотра. Я заметил много других связанных с этим вопросов, но ни один из этих ответов не работает для меня. Я пытаюсь прервать следующую сессию:

screen -lsThere is a screen on:    23520.pts-6.porkypig    (09/30/2013 02:49:47 PM)    (Detached)1 Socket in /var/run/screen/S-root.screen -r 23520.pts-6.porkypig

Сейчас я нахожусь на сеансе. В соответствии с документацией:

http://www.gnu.org/software/screen/manual/screen.html#Quit

Я должен нажать "control a", а затем "control\". Я делаю это, и ничего не происходит.

Другим решением было нажать Ctrl+a и введите : "бросить курить". Однако, опять же, это ничего не делает. На самом деле, нажимая control+a, после этого абсолютно ничего не происходит, кроме сообщения "Другого окна нет".

сначала вам нужно повторно подключиться к сеансу экрана
screen -r 23520 как вы это сделали. Затем нажмите ctrl + a а затем k и нажмите y когда он спрашивает, действительно ли вы хотите завершить сеанс

Источник

  1. Определите название сеанса:
 $ screen -ls
  1. Закрыть сеанс:
$ screen -XS <session-id> quit
  • Обоснование: -X = Выполнить команду, -S идентификатор сеанса для выполнения на
  • Пример: screen -XS 20411 quit
  • Источник: Ответ Иннама

Эта команда уничтожит все сеансы экрана, если это необходимо:

Итак, со всеми этими официальными предложениями у меня есть одно, которое, на мой взгляд, проще, и столь же эффективно, и в некотором роде более прямолинейно:

pkill screen

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

Кроме того, если у вас их больше одного, это уничтожит их всех одним махом.

Это приведет к уничтожению всех отсоединенных экранов:

screen -ls | grep отсоединен | вырезан -d. -f1 | awk '{print $1}' | xargs kill

Это приведет к отключению всех экранов, подключенных или отсоединенных

screen -ls | grep pts | cut -d. -f1 | awk '{print $1}' | xargs kill

Как и вы, я хотел прервать сеанс просмотра экрана и обнаружил, что документация бесполезна. Убежден, что там должен быть сочетанием клавиш, я обнаружил, что
ctrl + a затем \
работает

Затем я получаю подсказку: "Действительно выйдите и убейте все свои окна [y \ n]".

Я не уверен, почему в документации говорится ctrl + a затем ctrl + \. Для меня это ничего не значит.

Я столкнулся с этой проблемой при обновлении экрана. То screen команда зависала бы при попытке повторного подключения сеанса, независимо от того, сколько -D или -R Я добавил к команде. Однако, screen -ls удобно предоставляет pid сеанса, позволяя вам вмешиваться, используя следующее:

10:42 user ~ $ screen -lsThere is a screen on:        5730.my_screen     (Detached)1 Socket in /tmp/screens/S-user.10:42 user ~ $ sudo kill 573010:43 user ~ $ screen -lsNo Sockets found in /tmp/screens/S-user.

(Это похоже на ответ Брайана Томаса, но он убьет все запущенные сеансы экрана, что может быть не тем, что вам нужно, если у вас открыто несколько экранов, но только один ведет себя неправильно.)

Вы можете найти идентификатор процесса на прикрепленном рабочем экране. Я нашел его таким же, как идентификатор сеанса, который вы можете получить с помощью команды:
screen -ls
И вы можете использовать следующую команду, чтобы завершить этот процесс:
kill [sessionId] или
sudo kill [sessionId]
Вы можете отключить экран, даже если он прикреплен к какому-либо другому окну терминала.

мы также можем использовать exit команда на завершающий экран

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

Нажмите ctrl+d, чтобы закрыть окно экрана. Повторяйте это до тех пор, пока не закроете все экранные окна. Как только вы исчерпаете весь экран Windows, сеанс завершится и завершится. Кратчайшее решение, если у вас не так много окон

в screen v4.x, чтобы завершить все сеансы, ps aux | grep "SCREEN" | awk '{print $2}' | xargs kill

Для справки, вы можете просто сделать screen -r porkypig или screen -r 23520, вместо того, чтобы включать полную строку. Предполагается, что экранные имена упрощают, а не усложняют ситуацию.

мы также можем использовать команду “выход” для завершения экрана