tmux не подключается повторно

Я недавно перешел с экрана на tmux (полученный через macports), так как мне больше нравится набор функций. Однако я не могу заставить tmux повторно подключаться из другого места, например, я могу отображать.

Дома на своем Mac я открою iTerm2, моя оболочка по умолчанию - zsh, и я начну сеанс tmux с tmux . Я настраиваю все свои вертолеты, подключаюсь по ssh к нужным серверам и т. Д. И работаю какое-то время. Пора идти на работу. d - tmux отсоединяется.

Я приступаю к работе, где использую машину Windows XP. Я запускаю putty, ssh в свой Mac дома, пытаюсь прикрепить tmux и получаю сообщение об ошибке:

no sessions

Кажется, я не могу определить, почему это могло произойти. Я не боюсь копаться в этом, но даже не знаю, с чего начать. Мысли?

P.S. Я уже удалил свой файл .tmux.conf, поэтому он использует конфигурацию по умолчанию.

23
задан kenny 27 January 2012 в 19:55
поделиться

2 ответа

tmux хранит свой сокет сервера в каталоге в каталоге, указанном переменной среды TMPDIR.

В вашей сессии GUI вы, вероятно, в конечном итоге получите TMPDIR, который указывает где-то ниже /var (например, /var/folders/mV/mVip4IQ4EXOriTiLJmeSuk+++Tc/-Tmp-/).

Когда вы входите в систему через SSH, вы, вероятно, в конечном итоге не получаете набор TMPDIR, поэтому tmux ищет в /tmp/ свой сокет.

В системе 10.6, вот мой TMPDIR с zsh / & # xfeff; Terminal и с zsh / SSH:

% echo local: ${TMPDIR-unset}; ssh localhost 'echo remote: ${TMPDIR-unset}'
local: /var/folders/mV/mVip4IQ4EXOriTiLJmeSuk+++Tc/-Tmp-/
remote: unset

Если вам известно значение, которое нужно использовать для TMPDIR, вы можете указать его при подключении (или выполнении какой-либо другой команды tmux вне самой сессии):

TMPDIR=/var/folders/mV/mVip4IQ4EXOriTiLJmeSuk+++Tc/-Tmp-/ tmux attach

Если вы не знаете каталог, который использовался в сеансе GUI, вы можете найти его примерно так (синтаксис специфичен для zsh ; он ищет в /var/folders/ каталог с именем -Tmp- ], которым владеет текущий пользователь):

echo /var/folders/**/*/-Tmp-(U/)

Чтобы избежать проблем в будущем, вы можете захотеть сбросить TMPDIR перед запуском вашего сервера (или установить для него что-то, что вы можете легко предсказать). [+1121]

21
ответ дан 29 November 2019 в 01:08
поделиться

Опция -U в lsof перечисляет файлы открытых сокетов, поэтому lsof -U | grep '^tmux' перечислит все сокеты, используемые tmux . Если вы не вошли в систему как тот же пользователь, который запустил tmux , вам нужно будет использовать sudo.

Последний столбец каждой строки - это имя файла. Файлы, которые вам нужны, начинаются с /.

Строки, которые вы ищете, будут выглядеть примерно так:

tmux 1234  username 6u unix 0xffffffabcd123456 0t0 /private/var/folders/M8/M8tFwolmH08fOvJ+-35VI++++TM/-Tmp-/tmux-502/default
tmux 56789 username 6u unix 0xffffff123456789a 0t0 /private/tmp/tmux-502/default
6
ответ дан 29 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

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