Я пытаюсь прервать сеанс просмотра. Я заметил много других связанных с этим вопросов, но ни один из этих ответов не работает для меня. Я пытаюсь прервать следующую сессию:
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
Сейчас я нахожусь на сеансе. В соответствии с документацией:
Я должен нажать "control a", а затем "control\". Я делаю это, и ничего не происходит.
Другим решением было нажать Ctrl+a и введите : "бросить курить". Однако, опять же, это ничего не делает. На самом деле, нажимая control+a, после этого абсолютно ничего не происходит, кроме сообщения "Другого окна нет".
сначала вам нужно повторно подключиться к сеансу экрана screen -r 23520 как вы это сделали. Затем нажмите ctrl + a а затем k и нажмите y когда он спрашивает, действительно ли вы хотите завершить сеанс
Эта команда уничтожит все сеансы экрана, если это необходимо:
Итак, со всеми этими официальными предложениями у меня есть одно, которое, на мой взгляд, проще, и столь же эффективно, и в некотором роде более прямолинейно:
pkill screen
Кто хочет перейти на неизвестный и ненужный экран только для того, чтобы ввести пару команд, которые большинство, возможно, едва помнит? Это позволяет вообще не вдаваться в подробности и сразу же убивает его.
Кроме того, если у вас их больше одного, это уничтожит их всех одним махом.
Как и вы, я хотел прервать сеанс просмотра экрана и обнаружил, что документация бесполезна. Убежден, что там должен быть сочетанием клавиш, я обнаружил, что 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] Вы можете отключить экран, даже если он прикреплен к какому-либо другому окну терминала.
Нажмите ctrl+d, чтобы закрыть окно экрана. Повторяйте это до тех пор, пока не закроете все экранные окна. Как только вы исчерпаете весь экран Windows, сеанс завершится и завершится. Кратчайшее решение, если у вас не так много окон
Для справки, вы можете просто сделать screen -r porkypig или screen -r 23520, вместо того, чтобы включать полную строку. Предполагается, что экранные имена упрощают, а не усложняют ситуацию.