Sesión tmux persistente con socket compartido

Sesión tmux persistente con socket compartido

Me gustaría que siempre haya una sesión tmux en un socket en /tmp/shared con una sesión de 0. De esa manera siempre puedo conectarme a la sesión a través de SSH:

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

Quiero que se pueda compartir con otros usuarios y poder recrearse si un usuario con menos conocimientos o descuidado usa exit en lugar de [ctrl] + d al salir de la sesión.

Estoy seguro de que es posible hacer esto en un cron, pero no sé si no existe una mejor manera.

Respuesta1

Sería mejor crear un archivo de socket propiedad de un grupo mutuo de usuarios seleccionados y usar un nombre de sesión que usar un número de sesión.

/// 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

Algunas formas de comprobar el estado de la sesión:

  1. puede crear un cron pero retrasará la creación de la sesión compartida debido a la regla mínima de 1 minuto.
  2. script init.d para ejecutarlo como un servicio, similar aÉste
  3. puedes instalar supervisord y usarlo para demonizar automáticamente tu script de creación de sesión compartida

El año pasado usécompañerocorriendo como un demonio. Puede crear un servidor tmate y sesiones adjuntas desde diferentes máquinas utilizando tmate demonizado en ellas. Pero no puedo garantizar la seguridad porque los usé en una red privada.

Respuesta2

Lo siguiente se adjunta a la sesión 0 o crea una nueva sesión:

tmux new-session -t 0 || tmux

No creo que puedas crear sesiones con un número de sesión específico, por lo que quizás quieras considerar usar un nombre de sesión. Sin embargo, un enchufe personalizado puede ser suficiente para su situación.

Supongo aquí que si la sesión 0 no existe, se creará.

información relacionada