Препятствуйте тому, чтобы tmux запустил на SSH

Ваша первоочередная задача будет находить дистрибутив, который работает счастливо в 256 МБ - не большая память в эти дни.

По моему скромному мнению (и лично я предпочитаю KDE) для нетехников, я одобрил бы базирующийся рабочий стол Gnome 3 (хотя icewm/xfce будет соответствовать лучше доступной памяти). Я также предложил бы взглянуть на дистрибутивы, предназначающиеся для нетбуков - выбор программы является намного менее пугающим, но все еще относительно легким настроить.

MeeGo кажется популярной - но немного нетрадиционный. Щенок работает хорошо над базовым оборудованием.

4
19.08.2011, 13:12
2 ответа

Учитывая код Вы отправили при выполнении ssh из tmux Вы будете иметь $TERM = screen, таким образом, Вы не будете пытаться присоединить к tmux окну. Другими словами, код, который Вы уже имеете, должен работать, как желаемый. Существует что-то подозрительное продолжение. Удостоверьтесь, что Ваши точечные файлы не портят TERM переменная (если необходимо изменить TERM, который очень редок, удостоверьтесь, что сделали это только при очень определенных обстоятельствах; в особенности не изменяйте его, если это screen).

1
27.01.2020, 21:00

Можно протестировать на присутствие SSH_CONNECTION переменная среды: если та переменная определяется затем, оболочка была запущена с SSH. Например:

if [ -n "$SSH_CONNECTION" ]; then
  # running within SSH session, do not start tmux
  ...
else
  # logged in from console/terminal, start tmux
  tmux ...
fi

Переменная содержит четыре разделенных пробелом значения: клиентский IP-адрес, число клиентского порта, IP-адрес сервера и номер порта сервера. Можно использовать это для более сложного соответствия, например:

case "$SSH_CONNECTION" in
  client.ip.v4.addr*)
   # client is client.ip.v4.addr != this host's addr
   echo "you're connecting from a remote host, starting tmux"
   tmux ...
   ;;
  *server.ip.v4.addr)
   # if server.ip.v4.addr == this hosts' address, then SSH_CONNECTION
   # is not inherited from another connection
   echo "SSH_CNNECTION is not stale"
   ;;
  '') 
   # no SSH_CONNECTION at all
   ;;
esac

Больше деталей о SSH_CONNECTION переменная среды в разделе "ENVIRONMENT" ssh (1) страница справочника.

1
27.01.2020, 21:00
  • 1
    Это не будет работать на меня, потому что я всегда использую ssh для вхождения в систему начальной машины от PuTTY, таким образом, мой SSH_CONNECTION всегда устанавливается. Я должен так или иначе обнаружить, если бы ssh был вызван из tmux сессии. –  dogbane 19.08.2011, 16:08
  • 2
    Можно затем соответствовать на фактическом содержании SSH_CONNECTION, не только его присутствие. Я отредактировал ответ с примером. –  Riccardo Murri 19.08.2011, 16:28

Теги

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