убедитесь, что все сеансы tmux завершаются, когда сеанс SSH завершается.

Во-первых, чтобы избежать путаницы: это действительно вопрос обратного из вашего обычного вопроса о 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 оставался живым после того, как связь умирает. Кроме того, поскольку я использую разделенные панели и окна сильно заточены, очень желаю всем ребенку процессы, которые необходимо собрать.

0
07.05.2017, 21:26
1 ответ

При регистрации с новым сеансом ssh вы можете использовать что-то вроде tmux attach -d || tmux new для присоединения любого существующего сеанса tmux или создания нового сеанса, если сеансов tmux не существует. Хотя это не предотвратит запуск сеанса tmux в фоновом режиме при обрыве соединения ssh, это предотвратит накопление этих заброшенных сеансов.

1
28.01.2020, 02:33

Теги

Похожие вопросы