1

Я использую сервер AWS, и оболочки (bash) под моими сеансами tmux умирают после 20 минут бездействия.

Я делаю ssh -t myserver tmux new-session , затем C-b d для отключения.

затем

$ while sleep 60; do
    date -u +'%F %T'
    ssh myserver tmux ls 2>/dev/null
  done

и примерно через 20 минут сеанс исчезает.

Однако, если у меня есть два окна в tmux и я запускаю другой процесс в одном из них (less или vi или sudo su - или ...), то второе окно (plain bash) исчезает через 20 минут, а первое (vim & c) ) Живет на.

Я использовал AWS раньше (с tmux и screen), и я впервые вижу такое поведение.

Как мне избежать этого?

PS. Это не связано с тайм- аутами ssh (ServerAliveInterval); Я не связан с ssh когда оболочка убита.

PPS. Я спросил об этом на serverfault и ничего не получил, надеюсь, это будет более актуально здесь.

1 ответ1

0

У меня была похожая проблема, но она не обязательно была связана с AWS.

Я посмотрел в /etc/profile и нашел export TMOUT=$((60*60)) . Из документации Bash:

Если установлено значение больше нуля, TMOUT рассматривается как тайм-аут по умолчанию для встроенной функции чтения (см. Встроенные функции Bash) Команда выбора (см. Условные конструкции) завершается, если ввод не поступает через TMOUT секунд, когда ввод поступает с терминала.

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

Исправлена ошибка, связанная с добавлением unset TMOUT в $USER/.profile (или .bash_profile , .bash_login и т.д.).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .