Не может заставить отдельный экран возобновляться

http://www.linode.com/index.cfm был очень надежен для нескольких моих друзей. У них есть несколько местоположений, и можно масштабироваться довольно легко.

11
задан 13 September 2015 в 12:06
8 ответов

Я видел это, когда я отбрасываю соединение с активным экраном, затем снова соединяются. Ошибка № 27462 ("Повторно подключают остановы, когда исходная сессия проиграна") описывает проблему, поскольку я вижу его. То, что, кажется, происходит, - то, что экран пытается уведомить tty, который содержит его, что он собирается уехать, но так как tty подвешивается из-за выделенного соединения, он должен ожидать тайм-аута для случая (который имеет вверх пять минут в некоторых случаях).

Для фиксации его я делаю это:

  • фигура, какой tty держится за экранную сессию ps -ef | grep screen | grep pty
  • найдите удар входа в систему, который связан с этим tty ps -ef | grep bash | grep $PTY
  • уничтожьте тот удар kill -KILL $PID

Это заставляет экран завершать свое разъединение правильно и позволяет Вам обычно снова соединяться.

Посмотрите здесь для сценария в качестве примера, автоматизирующего это несколько.

15
ответ дан 2 December 2019 в 21:49
  • 1
    PS-ef | grep экран | grep tty никогда ничего не печатает, потому что PS-ef | grep экран никогда ничего не возвращает со строкой tty. –  Dave Aaron Smith 23 January 2010 в 00:18
  • 2
    На самом деле сценарий в качестве примера, кажется, добивается цели.Спасибо! –  Dave Aaron Smith 23 January 2010 в 00:24
  • 3
    Да, я имел в виду ' pty' не ' tty'. –  David Mackintosh 23 January 2010 в 04:59

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

ssh myname@foo
screen -S sessionName
(do my work... get disconnected...)

ssh myname@foo
screen -d (just to make sure anything wasn't left attached)
screen -r sessionName
1
ответ дан 2 December 2019 в 21:49
  • 1
    Например, экран - перечисляет возвраты 32322.mySession (Приложенный). Затем я экранирую-d mySession. Затем экран - список все еще возвращается 32322.mySession (Приложенный), и экранные возвраты-r mySession, Там не экран, который будет возобновлен, соответствуя daveSession. –  Dave Aaron Smith 23 January 2010 в 00:03
  • 2
    сделал Вы пробуете просто " экран-d"? –  Jason Antman 25 January 2010 в 22:37

Действительно ли возможно, что эта ошибка влияет на Вас?

http://savannah.gnu.org/bugs/?27462

Можно ли попытаться делать обходное решение, которое они рекомендуют и видящий, работает ли оно?

0
ответ дан 2 December 2019 в 21:49
  • 1
    Обходное решение didn' t имеют много смысла мне. Мой вывод PS-ef |grep экранирует doesn' t похожи на пример вообще. –  Dave Aaron Smith 23 January 2010 в 00:17

Удалите мертвые экраны с помощью screen -wipe .

-1
ответ дан 2 December 2019 в 21:49

I had a similar issue with my screen sessions. I name them and have them setup as multi-user sessions. What I found was that it was listing my sessions but telling me I had none to reconnect to. Then I tried:

screen -x

It worked like a champ!

2
ответ дан 2 December 2019 в 21:49

Соулрс: https://kb.iu.edu/data/ahrm.html

To see your existing screen sessions, enter:
  screen -list
This will display a list of your current screen sessions. For instance, if you had one attached screen, you would see:

         1636.pts-21.hostname      (Attached)

To detach an attached screen, enter:
  screen -D
If you have more than one attached screen, you can specify a particular screen to detach. For example, to detach the screen in the above example, you would enter:
  screen -D 1636.pts-21.hostname
0
ответ дан 2 December 2019 в 21:49

Если вы такие же умные, как я,вы пытались возобновить сеанс экрана, запущенный как root с учетной записью обычного пользователя. Обнаружил это с помощью ls / var / run / screen , показав мне каталог для root

0
ответ дан 2 December 2019 в 21:49

Иногда у меня возникает та же проблема (экран -r -d не возобновляется, не отвечает). Чтобы исправить это, найдите терминал (tty / pty), связанный с сеансом экрана:

screen -list
There is a screen on:
    28176.pts-51.localhost        (Attached)
1 Socket in /tmp/uscreens/S-xxxx.

Найдите указанный терминал (в этом примере pts-51):

ps axuw | grep 'pts/51'   # will vary depending upon how pty's are named
you     12293  0.0  0.2  2148 1128 pts/51   Ss   10:34   0:00 -bash

Убейте процессы на этом терминале (обычно это ваша оболочка):

kill 12293

запустите ps еще раз, чтобы убедиться, что он исчез. Если нет:

kill -9 12293

На моем сервере (gnu / linux) мне иногда придется несколько раз убить -9, пока он не умрет.

После того, как все процессы на этом tty исчезнут, screen должен возобновить работу правильно:

screen -r -d
0
ответ дан 2 December 2019 в 21:49

Теги

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