Мне бы хотелось, чтобы на сокете в /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
Несколько способов проверить статус сеанса:
- Вы можете создать cron, но это задержит создание sharedsession из-за правила минимум в 1 минуту.
- скрипт init.d для запуска его как службы, аналогичноВот этот
- вы можете установить supervisord и использовать его для автоматической демонизации вашего скрипта создания общего сеанса
В прошлом году я использовалприятельзапущенный как демон. Вы можете создать сервер tmate и прикрепить сеансы с разных машин, используя в них демонизированный tmate. Но я не могу гарантировать безопасность, так как я использовал их в частной сети.
решение2
Следующее присоединяется к сеансу 0 или создает новый сеанс:
tmux new-session -t 0 || tmux
Я не думаю, что вы можете создавать сеансы с определенным номером сеанса, поэтому вы можете рассмотреть возможность использования имени сеанса. Однако пользовательский сокет может быть вполне хорош для вашей ситуации.
Я предполагаю, что если сеанс 0 не существует, то он будет создан.