Некоторое время я использовал screen -dURS
, чтобы решить эту проблему .
Цель состоит в том, чтобы иметь возможность запустить команду, которая присоединяется к существующему сеансу с конкретным именем, или создать сеанс с конкретным именем и запустить команду в этом новом сеансе. Конкретным примером может быть загрузка сервера или демона, если он не запущен, или просто присоединение к сеансу, если он работает.
Я читал man tmux
, и ближе всего я достиг этой цели:
tmux new-session -AD -t TMUXSessionName 'echo Banana'
Флаг -A заставляет new-session вести себя как attach-session, если session -имя уже существует; в этом случае -D ведет себя как -d для attach-session.
Если задано -t, новый сеанс группируется с целевым сеансом. Это означает, что они используют один и тот же набор окон - все окна из целевого сеанса связаны с новым сеансом, и любые последующие новые окна или закрываемые окна применяются к обоим сеансам. Текущее и предыдущее окно и любые параметры сеанса остаются независимыми, и любой сеанс может быть прерван, не затрагивая другой. Задание -n или shell-command недопустимо, если используется -t.
Я неправильно понимаю эти флаги? Пытаюсь ли я сделать что-то, что не поддерживается tmux
изначально?
Примечание: мне кажется tmux
легче объяснить менее технически подкованным людям, и из-за способа, которым это позволяет легко делиться сессиями, я Я хотел бы иметь возможность переключиться на tmux
из screen
, и эта проблема - единственное, что я не смог выяснить, чтобы позволить мне полностью переключиться.
Прием должен был внести следующее изменение:
tmux new-session -AD -s TMUXSessionName 'echo Banana'
Так, чтобы мы использовали -s
и не -t
.