Gostaria que sempre houvesse uma sessão tmux em um soquete em /tmp/shared com uma sessão 0. Dessa forma, sempre posso anexar à sessão via SSH:
ssh [email protected] -t tmux -S /tmp/shared attach-session -t 0
Quero que ele seja compartilhável com outros usuários e seja capaz de se recriar se um usuário com menos conhecimento ou descuidado usar exit em vez de [ctrl] + d ao sair da sessão.
Tenho certeza de que é possível fazer isso em um cron, mas não sei se não existe uma maneira melhor.
Responder1
Criar um arquivo de soquete pertencente ao grupo mútuo de usuários selecionados e usar um nome de sessão seria melhor do que usar o número da sessão.
/// 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
Algumas maneiras de verificar o status da sessão:
- você pode criar um cron, mas isso atrasará a criação da sessão compartilhada devido à regra mínima de 1 minuto.
- script init.d para executá-lo como um serviço, semelhante aEste
- você pode instalar o supervisord e usá-lo para daemonizar automaticamente seu script de criação de sessão compartilhada
Ano passado eu useicompanheirorodando como um daemon. Você pode criar um servidor tmate e sessões anexadas de diferentes máquinas usando tmate daemonizado nelas. Mas não posso garantir a segurança por isso usei-os em uma rede privada.
Responder2
O seguinte é anexado à sessão 0 ou cria uma nova sessão:
tmux new-session -t 0 || tmux
Não creio que você possa criar sessões com um número de sessão específico; portanto, considere usar um nome de sessão. No entanto, um soquete personalizado pode ser bom o suficiente para sua situação.
Estou assumindo aqui que se a sessão 0 não existir ela será criada.