Sessão tmux persistente com soquete compartilhado

Sessão tmux persistente com soquete compartilhado

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:

  1. você pode criar um cron, mas isso atrasará a criação da sessão compartilhada devido à regra mínima de 1 minuto.
  2. script init.d para executá-lo como um serviço, semelhante aEste
  3. 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.

informação relacionada