Во-первых, чтобы избежать путаницы: это действительно вопрос обратного из вашего обычного вопроса о tmux.
Как можно гарантировать, что в случае отказа SSH-туннеля сеанс tmux не прекратится? протекает вообще. При запуске нескольких оболочек над одной Сеанс SSH, завершающий сеанс и экземпляр tmux чисто в одном терминале по-прежнему будет вызывать экземпляры tmux в других терминалах течь. Это может вызвать всевозможные проблемы, если e. г. один забыл для завершения ресурсоемкого процесса, который оставался скрытым в какой-то фоновой панели. Не круто.
Я использую tmux почти исключительно как эмулятор терминала и имею
мало пользы от функции «отсоединения». Это не редкость, что
У меня есть несколько экземпляров tmux в терминалах, которые обращаются к одному и тому же
компьютер за один сеанс SSH. Если я хочу запустить фон
процесса, я прошу оболочку отключить
его или запустить в
systemd. К сожалению, многие системы, с которыми я работаю изо дня в день
еще не обновились до systemd и вряд ли сделают это в
ближайшее будущее, так что KillUserProcesses
не вариант.
В идеале я бы просто запускал tmux с каким-нибудь переключателем командной строки,
предотвращает его работу в фоновом режиме, поэтому я могу использовать псевдоним
на tmux
.
Какие туннели SSH?
Одно соединение OpenSSH, обслуживающее несколько сеансов.
Какой сеанс tmux?
Отдельные экземпляры tmux, по одному на сеанс SSH.
Какие утечки?
Утечки экземпляров tmux. Например: SSH в машину. Начать другой сеанс оболочки
по тому же соединению. Запускайте экземпляр tmux в каждом сеансе SSH. Ты сейчас
иметь два экземпляра tmux. Остановить tmux за один сеанс (
); затем остановите SSH
соединение (снова
): другой сеанс SSH закрыт, но экземпляр tmux
запущенный внутри, он протекает со всеми дочерними процессами.
Пожалуйста, опишите: (1) какая у вас сейчас установка,
Стандартный OpenSSH, стандартный tmux, некоторая оболочка. В основном обратные SSH-подключения что я не могу восстановить по своему желанию, но это не имеет значения.
и (2) какой сценарий вы пытаетесь предотвратить.
Процессы остаются активными в другом сеансе tmux.
Обратите внимание, что это разные окна, в которые вводятся SSH, поэтому цель заключается в том, чтобы не допустить, чтобы даже один экземпляр tmux оставался живым после того, как связь умирает. Кроме того, поскольку я использую разделенные панели и окна сильно заточены, очень желаю всем ребенку процессы, которые необходимо собрать.
При регистрации с новым сеансом ssh
вы можете использовать что-то вроде tmux attach -d || tmux new
для присоединения любого существующего сеанса tmux
или создания нового сеанса, если сеансов tmux
не существует. Хотя это не предотвратит запуск сеанса tmux
в фоновом режиме при обрыве соединения ssh
, это предотвратит накопление этих заброшенных сеансов.