tmux - общий сервер не в / tmp? - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь использовать tmux на корпоративном кластере, который регулярно создает дамп /tmp. Я хочу хранить сокеты для общего проекта в /proj/foo/shells. Я могу создать сеанс с tmux -S /proj/foo/shells/bar new -s nameOfTheSession, но они не отображаются в tmux ls, и теперь я не могу понять, как их администрировать? Каждый раз, когда я соединяюсь с tmux -S /proj/foo/shells/bar, создается новый сеанс, который я могу уничтожить с помощью ctrl+b x, но теперь у меня до [5].

Как мне использовать tmux таким образом? Я хочу, чтобы ls работал правильно, а оболочки / сеансы вели себя так, как я мог бы сделать tmux a bar и вернуться в /proj/foo/shells/bar.

1 Ответ

1 голос
/ 30 января 2020

Каждой команде должна быть предоставлена ​​опция -S, чтобы указать, какой (альтернативный) сокет использовать.

$ tmux -S /proj/new/shells/bar new -s nameOfTheSession
$ tmux -S /proj/new/shells/bar ls

Команда tmux -S /proj/foo/shells/bar каким-то образом не делает каждую будущий вызов tmux по заданному пути; он просто отправляет команду по умолчанию new-session на сервер по указанному пути.

Кажется, что вам все равно, как называется реальный сокет, если он хранится в /proj/foo/shells , В этом случае просто установите TMUX_TMPDIR для вашей среды:

export TMUX_TMPDIR=/proj/foo/shells

Теперь, когда вы запускаете tmux, по умолчанию сервер будет доступен по адресу /proj/foo/shells/default. Вы все еще можете использовать опцию -L, чтобы указать имя сервера, отличное от default (например, -L bar для использования сервера /proj/foo/shells/bar вместо).

...