Обычно я вхожу в свой Linux-бокс с моего ноутбука Windows с помощью PuTTY и запускаю там screen. Когда мои корпоративные хозяева решили обновить мой ноутбук до Windows 7, мои сеансы PuTTY зависли. Обычно я завершаю сеанс PuTTY, а затем либо заново подключаю сеанс screen (если он отсоединился), либо использую "-d -r", если сеанс screen не отсоединился, когда мой сеанс PuTTY завис.
Моя проблема в том, что у меня есть сеанс экрана, который сначала отказывался отсоединяться. Я бы использовал:
screen -d -r 6313.sessionName
но команда просто зависла бы там.
Я обнаружил, что в каталоге /var/run/screen// были «файлы», соответствующие каждому из моих сеансов screen. Я заметил, что упрямый имел 700 разрешений на него, в то время как другие (которые были отсоединены) имели 600 разрешений.
Поэтому я изменил разрешения на этот файл на 600. Теперь на экране он отображается как "отсоединенный". Однако, когда я пытаюсь снова подключиться к нему, команда снова просто зависает.
С использованием
ps aux | grep 6313
показывает состояние процесса как "Ss", что означает, что он находится в состоянии прерываемого сна. Это ничем не отличается от любого другого сеанса отсоединенного экрана, который показывает тот же статус процесса.
Я в растерянности, как восстановить эту сессию. Есть предложения?
решение1
Когда я использую screen
команду, я обычно открываю сокет следующим образом:
$ screen -S <SOCKET_NAME>
и когда я хочу прикрепить или прикрепить снова, я использую:
$ screen -x <SOCKET_NAME>
решение2
Чтобы отсоединить сеанс экрана, следует использовать Ctrl+ A+ D. Затем, чтобы повторно присоединить сеанс, следует использовать screen -r <pid>
. Если вы хотите подключиться к сеансу экрана, который используется, следует использовать , screen -dr <pid>
чтобы сначала отсоединить, а затем повторно присоединить сеанс экрана.