Постоянный сеанс tmux с общим сокетом

Постоянный сеанс tmux с общим сокетом

Мне бы хотелось, чтобы на сокете в /tmp/shared всегда была сессия tmux с сеансом 0. Таким образом, я всегда смогу подключиться к сессии через SSH:

ssh [email protected] -t tmux -S /tmp/shared attach-session -t 0

Я хочу, чтобы им можно было поделиться с другими пользователями и чтобы он мог воссоздать себя, если менее осведомленный или беспечный пользователь использует команду exit вместо [ctrl] + d при выходе из сеанса.

Я уверен, что это можно сделать в cron, но не знаю, есть ли способ лучше.

решение1

Создание файла сокета, принадлежащего выбранной группе пользователей, и использование имени сеанса будет лучше, чем использование номера сеанса.

/// Create session
tmux -S /tmp/shareds new -s sharedsession
/// Change ownership to group
chgrp mutual_group_name /tmp/shareds
/// Run this in other user or ssh session to attach yourself
tmux -S /tmp/shareds attach -t sharedsession

Несколько способов проверить статус сеанса:

  1. Вы можете создать cron, но это задержит создание sharedsession из-за правила минимум в 1 минуту.
  2. скрипт init.d для запуска его как службы, аналогичноВот этот
  3. вы можете установить supervisord и использовать его для автоматической демонизации вашего скрипта создания общего сеанса

В прошлом году я использовалприятельзапущенный как демон. Вы можете создать сервер tmate и прикрепить сеансы с разных машин, используя в них демонизированный tmate. Но я не могу гарантировать безопасность, так как я использовал их в частной сети.

решение2

Следующее присоединяется к сеансу 0 или создает новый сеанс:

tmux new-session -t 0 || tmux

Я не думаю, что вы можете создавать сеансы с определенным номером сеанса, поэтому вы можете рассмотреть возможность использования имени сеанса. Однако пользовательский сокет может быть вполне хорош для вашей ситуации.

Я предполагаю, что если сеанс 0 не существует, то он будет создан.

Связанный контент