Присоединение tmux к существующему сеансу или создание нового сеанса

Некоторое время я использовал screen -dURS решить эту проблему.

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

Я читал man tmux и ближе всего я достиг этой цели:

tmux new-session -AD -t TMUXSessionName 'echo Banana'

Флаг -A заставляет новый сеанс вести себя как присоединенный сеанс, если имя сеанса уже существует; в этом случае -D ведет себя как -d для attach-session.

Если задано -t, новый сеанс группируется с целевым сеансом. Это означает, что они используют один и тот же набор окон - все окна из целевого сеанса связаны с новым сеансом, и любые последующие новые окна или закрываемые окна применяются к обоим сеансам. Текущее и предыдущее окно и любые параметры сеанса остаются независимыми, и любой сеанс может быть прерван, не затрагивая другой. Задание -n или shell-command недопустимо, если используется -t.

Я неправильно понимаю эти флаги? Я пытаюсь сделать что-то, что не поддерживается tmux изначально?

Примечание: я нахожу tmux легче объяснить менее технически подкованным людям, и из-за того, что он позволяет легко обмениваться сессиями, я бы хотел иметь возможность переключиться на tmux от screen и эта проблема - единственное, что я не смог понять, чтобы позволить мне полностью переключиться.

1 ответ

Хитрость заключалась в том, чтобы сделать следующее изменение:

tmux new-session -AD -s TMUXSessionName 'echo Banana'

Так что мы используем -s и не -t,

Другие вопросы по тегам