Присоединение 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
,