Я пытаюсь убить сеанс экрана. Я заметил много других связанных вопросов, но ни один из этих ответов не работает для меня. Я пытаюсь убить следующую сессию:
screen -ls
There 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
Я должен нажать " контролировать "а потом" контролировать \ ". Я делаю это, и ничего не происходит.
В другом решении говорится, что нажмите Ctrl kbd> + a kbd> и введите: quit. Однако, опять же, это ничего не делает. Фактически, нажав control kbd> + a kbd>, после этого абсолютно ничего не происходит, кроме сообщения «Нет другого окна»
Вы можете выйти из этого экрана, не подключаясь к нему. Сначала найдите сеанс:
$ screen -ls
, а затем выйдите из него:
$ screen -XS [session # you want to quit] quit
Я столкнулся с этой проблемой при обновлении экрана. Команда screen
зависает при попытке присоединить сеанс независимо от того, сколько -D
или -R
я добавил в команду. Тем не менее, screen -ls
удобно предоставляет pid сеанса, позволяя вам вмешаться, используя следующее:
10:42 user ~ $ screen -ls
There is a screen on:
5730.my_screen (Detached)
1 Socket in /tmp/screens/S-user.
10:42 user ~ $ sudo kill 5730
10:43 user ~ $ screen -ls
No Sockets found in /tmp/screens/S-user.
(Это похоже на ответ Брайана Томаса, но его действие уничтожит все сеансы работы на экране, которые могут не то, что вы хотите, если у вас открыто несколько экранов, но только один нехорошо работает.)
Это убьет все отдельные экраны:
screen -ls | grep detached | cut -d. -f1 | awk '{print $1}' | xargs kill
Это убьет все экраны, прикрепленные или отсоединенные
screen -ls | grep pts | cut -d. -f1 | awk '{print $1}' | xargs kill
Итак, со всеми этими официальными предложениями, давайте просто перейдем к чему-то более простому, столь же эффективному и более прямолинейному.
pkill screen
Кто хочет войти в неизвестный и ненужный экран, чтобы просто нажать пару команд, которые большинство из них едва ли помнят? Это позволяет вообще не углубляться в это и сразу убивает.
Плюс, если у вас их больше одного, это сделает их всех одним махом.
Как и вы, я хотел убить сеанс экрана и нашел документацию бесполезной. Убедившись, что должно быть , должно быть сочетание клавиш, я обнаружил, что
ctrl + a
, затем \
работает
, затем я получаю подсказку: «Действительно выйди и убей все свои окна [y \ n]»
Я не уверен, почему в документации написано ctrl + a
, а затем ctrl + \
. Это ничего не делает для меня.
Вы можете найти идентификатор процесса прикрепленного рабочего экрана. Я нашел его так же, как идентификатор сеанса, который вы можете получить командой:
screen -ls
И вы можете использовать следующую команду, чтобы убить этот процесс:
kill [sessionId]
или
sudo kill [sessionId]
Вы можете убить экран, даже если он прикреплен к другому окну терминала.
Просто нажмите Ctrl kbd> + D kbd>, и оно завершится.
Сначала вам нужно повторно присоединиться к экранной сессии
screen -r 23520
, как вы это сделали. Затем нажмите ctrl kbd> + a kbd>, а затем заглавную K kbd> и нажмите y kbd>, когда он спросит, действительно ли вы хотите убить сеанс
Нажмите ctrl+d для уничтожения экранного окна. Повторите это, пока Вы не уничтожите все экранные окна. После того как Вы выбежали, весь экран окон уничтожит сессию и завершение. Самое короткое решение, если Вы не имеющий много окон
мы также можем использовать команду выход
для закрытия экрана
Вы можете просто набрать exit в режиме записи, я обнаружил, что это наиболее удобно, так как сразу выходит из рабочего экрана.