Я пытаюсь убить сеанс экрана. Я заметил много других связанных вопросов, но ни один из этих ответов не работает для меня. Я пытаюсь убить следующую сессию:
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+ aи набрать: выйти. Однако, опять же, это ничего не делает. На самом деле, после нажатия control+ aабсолютно ничего не происходит, кроме сообщения «Нет другого окна»
gnu-screen
JohnMerlino
источник
источник
ps aux | grep "SCREEN" | awk '{print $2}' | xargs kill
screen -r porkypig
илиscreen -r 23520
, вместо того, чтобы включать полную строку. Предполагается, что псевдонимы делают вещи проще, а не сложнее.Ответы:
сначала вам нужно повторно присоединиться к экранной сессии,
screen -r 23520
как вы это сделали. Затем нажмите ctrl+, aа затем заглавную Kи нажмите, yкогда он спросит, действительно ли вы хотите убить сеансисточник
Вы можете выйти из этого экрана, не подключаясь к нему. Сначала найдите его сеанс:
и затем выйдите из этого:
(-X = Выполнить команду, -S идентификатор сеанса для выполнения)
[ОБНОВИТЬ]
Пример:
источник
Это убьет все отключенные экраны:
Это убьет все экраны, прикрепленные или отсоединенные
источник
Итак, со всеми этими официальными предложениями, давайте просто перейдем к чему-то более простому, столь же эффективному и более прямолинейному.
pkill screen
Кто хочет войти в неизвестный и ненужный экран, чтобы просто нажать пару команд, которые большинство из них едва ли помнят? Это позволяет вообще не углубляться в это и сразу убивает.
Плюс, если у вас их больше одного, это сделает их всех одним махом.
источник
Я столкнулся с этой проблемой при обновлении экрана.
screen
Команда будет зависать при попытке присоединить сеанс, независимо от того, сколько-D
и-R
я добавил к команде. Тем не менее,screen -ls
удобно предоставляет pid сеанса, позволяя вам вмешиваться, используя следующее:(Это похоже на ответ Брайана Томаса, но он убьет все запущенные сеансы экрана, что может быть не тем, что вы хотите, если у вас открыто несколько экранов, но только один неправильный режим работы.)
источник
Как и вы, я хотел убить сеанс экрана и нашел документацию бесполезной. Убедившись, что должно быть сочетание клавиш, я обнаружил, что
ctrl + a
тогда\
работает
Затем я получаю приглашение: «Выйти и убить все ваши окна [y \ n]»
Я не уверен, почему документация говорит
ctrl + a
тогдаctrl + \
. Это ничего не делает для меня.источник
Вы можете найти идентификатор процесса на прикрепленном рабочем экране. Я нашел его так же, как и идентификатор сеанса, который вы можете получить с помощью команды:
screen -ls
И вы можете использовать следующую команду, чтобы убить этот процесс:
kill [sessionId]
илиsudo kill [sessionId]
Вы можете убить экран, даже если он подключен в каком-то другом окне терминала.
источник
Нажмите Ctrl + D, чтобы убить окно экрана. Повторяйте это, пока вы не убьете все окна экрана. Как только у вас закончились все окна, экран будет прерван и завершится. Самое короткое решение, если у вас не много окон
источник