Назад | Перейти на главную страницу

Невозможно повторно подключиться к сеансу экрана после разрыва соединения SSH

Я ранее повторно подключался к длительному сеансу экрана с screen -dr control. Однако иногда эта команда не прикрепляется к экрану и вместо этого зависает навсегда (10+ минут, после чего я прервал). Это происходит только тогда, когда соединение SSH неожиданно прерывается, а не когда экран правильно отсоединен с помощью Ctrl-A d. Другие переключатели, такие как screen -x или screen -D -RR тоже не работают.

Эта почта предлагает убить PTY, который удерживает сеанс экрана, что приведет к отключению screen. Однако он просто убивает снаряд, из которого screen -dr control назывался.

Например:

$ ps -ef | grep control | grep -v grep
nomad     7387  7109  0 13:05 pts/50   00:00:00 screen -dr control
nomad    15299     1  0 Nov27 ?        00:13:47 SCREEN -S control

$ ps -ef | grep bash | grep 'pts/50'
nomad     7109  7108  0 12:49 pts/50   00:00:00 -bash

Связанный пост предлагает убить bash процесс с PID 7109. Это также убьет screen -dr control процесс с PID 7387. После этого я все еще не могу подключиться к экрану.

Процесс SCREEN -S control который запустил сеанс экрана, init как его родителя, которого я, очевидно, не могу убить.

Есть ли способ повторно подключиться к сеансу зависания экрана?

Обновление: это происходит в CentOS 6.4 с использованием ядра 2.6.32-358.6.1.el6.x86_64. Все оболочки представляют собой выпуск bash версии 4.1.2 (1).

Я думаю тебе стоит попробовать

screen -DR 

в следующий раз тоже - сердитый (заглавный) вызов должен заставить его отключить этот другой сеанс, который удерживается вашим промежуточным прыжком netcat.

Как предположил Йенс Тиммерман, основной причиной такого странного поведения было то, что я подключался к удаленному серверу с помощью SSH ProxyCommand и ncat. После убийства ncat на промежуточном компьютере я могу повторно подключиться к сеансу экрана.

Если это частая проблема, вы также можете рассмотреть возможность использования mosh в качестве замены ssh:

http://mosh.mit.edu