У меня есть irssi, работающий на экране, и я соединяюсь с ним через ssh (с PuTTY). Когда я неожиданно теряю свое соединение SSH, если irssi был активным экранным окном после повторного подключения/повторного прикрепления, это часто отбрасывает и снова соединяется со всеми серверами IRC. Там какой-либо путь состоит в том, чтобы "изолировать" его от ssh сессии, таким образом, это остается связанным?
То, что происходит, - то, что irssi пытается записать что-то для экранирования (его терминал), и экран пытается записать в соединение SSH. Запись экрана блокируется, таким образом, она также блокируется irssi, который затем не отвечает на PING с серверов больше, которые затем разъединяют ее.
Решение сказать экран не блок приложение в нем, если экранные блоки. Можно сделать это с nonblock
экранная команда: ctrl-A :nonblock on
. Это просто влияет на текущее окно на экране. Применять его к новым окнам использованием по умолчанию defnonblock on
. И сделать это каждый раз Вы экран "Пуск", вставьте его Ваш ~/.screenrc
:
defnonblock on
От man screen
:
nonblock [on|off|numsecs]
Скажите экран, как иметь дело с пользовательскими интерфейсами (дисплеи), которые прекращают принимать вывод. Это может произойти, если пользователь нажимает ^S, или TCP/модемное соединение сокращается, но никакое зависание не получено. Если неблок выключен (это - значение по умолчанию), экран ожидает до перезапусков дисплея для принятия вывода. Если неблок идет, экран ожидает, пока тайм-аут не достигнут (на, рассматривается как 1 с). Если дисплей все еще не получит символы, то экран будет полагать, что "заблокировался", и прекратите отправлять символы в него. Если в некоторое время это перезапустит для принятия символов, то экран разблокирует дисплей и вновь отобразит обновленное содержание окна.