убить сеанс экрана

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

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

Я должен нажать «control a» и затем «управление». Я делаю это и ничего не происходит.

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

1
задан 10 October 2013 в 02:35

6 ответов

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

$ screen -ls
$ screen -X -S [session # you want to kill] quit
23
ответ дан 24 May 2018 в 17:03
  • 1
    Это было довольно просто. Вы можете упростить его еще больше, объединив -X -S с -XS – AJ. 10 November 2016 в 07:34
  • 2
    Вы должны отдать должное innaM answer , если вы его скопируете – Martin Thoma 1 May 2017 в 17:47

Это убьет все выделенные экраны:

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

Это убьет все экраны, прикрепленные или отсоединенные

screen -ls | grep pts | cut -d. -f1 | awk '{print $1}' | xargs kill
7
ответ дан 24 May 2018 в 17:03

Итак, со всеми этими официальными предложениями, давайте просто пойти на что-то более легкое и столь же эффективное и более прямолинейное.

pkill screen

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

Плюс, если у вас более одного, это займет их всех одним махом.

5
ответ дан 24 May 2018 в 17:03
  • 1
    Обратите внимание, что это убьет все запущенные экраны, которые могут или не могут быть тем, что вы хотите. – Mikkel 26 September 2016 в 17:57

Я столкнулся с этой проблемой при обновлении экрана. Команда 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.

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

1
ответ дан 24 May 2018 в 17:03
  • 1
    После 6 часов ломающих голову по всему интернету ... твой был единственный ответ, который сработал. Спасибо друг! – kRazzy R 30 September 2017 в 09:43

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

Затем я получаю приглашение: «На самом деле уйти и убить все ваши окна [y \ n]» [!d4 ]

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

0
ответ дан 24 May 2018 в 17:03

Просто нажмите Ctrl + D и закончите.

-1
ответ дан 24 May 2018 в 17:03
  • 1
    Я не думаю, что это работает для OP. – Mark Yisri 27 November 2016 в 19:21
  • 2
    Вопрос - 3 года, и ОП не подписывается почти 18 месяцев, так что это, по крайней мере, отпущенный ответ для OP. – WinEunuuchs2Unix 27 November 2016 в 21:12

Другие вопросы по тегам:

Похожие вопросы: