GNU/Linux >> Tutoriales Linux >  >> Linux

Inicio automático de la sesión de Tmux en el sistema remoto al iniciar sesión a través de SSH

Siempre es una buena práctica ejecutar un proceso de larga ejecución dentro de un Tmux sesión cuando se trabaja con sistemas remotos a través de SSH. Porque evita que pierda el control del proceso en ejecución cuando la conexión de red se cae repentinamente. En caso de que la conexión de red se interrumpa por algún motivo, los procesos dentro de la sesión de Tmux seguirán ejecutándose en los sistemas remotos, por lo que puede volver a conectarse a la sesión de Tmux usando el comando "tmux adjuntar" una vez que la conexión de red vuelva a estar en línea. ¿Qué sucede si olvidó iniciar la sesión de Tmux en primer lugar? No importa cuán cuidadoso sea, a veces puede olvidarse de iniciar la sesión de Tmux. Aquí hay una manera simple de evitar este problema. Puede iniciar automáticamente la sesión de Tmux en los sistemas remotos al iniciar sesión a través de SSH. Esto es especialmente útil si perdió la conexión de red al actualizar un servidor Linux remoto a través de SSH desde su sistema local. Tenga en cuenta que el siguiente consejo iniciará automáticamente una sesión de Tmux cada vez que intente iniciar sesión en su sistema Linux, ya sea de forma local o remota a través de SSH desde otro sistema.

Inicio automático de la sesión Tmux en el sistema remoto al iniciar sesión a través de SSH

Para iniciar automáticamente la sesión de Tmux cuando se conecta a través de SSH, edite el ~/.bash_profile de su sistema remoto. archivo:

$ nano ~/.bash_profile

Si el archivo no está disponible, simplemente créelo.

Y agregue las siguientes líneas en él:

if [ -z "$TMUX" ]; then
    tmux attach -t default || tmux new -s default
fi

Guarde y cierre el archivo. Cierre sesión y vuelva a iniciar sesión en los sistemas remotos. Accederá a una nueva sesión de Tmux llamada 'default' .

Ahora, inicie cualquier proceso dentro de la sesión de Tmux y desconéctelo presionando Ctrl+b seguido de d . El proceso seguirá ejecutándose dentro de la sesión de Tmux incluso después de que se interrumpa la conexión de red. Una vez que la conexión de red esté de vuelta, SSH en el sistema remoto y verá que el trabajo aún se está ejecutando.

Echa un vistazo a la siguiente salida animada:

Permítanme aclarar lo que acabo de hacer en el resultado anterior.

  1. Me conecto a mi servidor Ubuntu remoto a través de SSH desde mi sistema local. Se inicia automáticamente una nueva sesión de Tmux denominada "predeterminada".
  2. Dentro de la sesión de Tmux, ejecuto un comando (Ej. watch grep \"cpu MHz\" /proc/cpuinfo) para monitorear la velocidad de la CPU.
  3. Luego, me desconecté de la sesión presionando Ctrl+b y d .
  4. Y luego, enumero las sesiones Tmux usando el comando "tmux ls" y salgo de la sesión SSH.
  5. Finalmente, me vuelvo a conectar al sistema remoto a través de SSH y verifico si el proceso continúa ejecutándose dentro de la sesión de Tmux sin ninguna interrupción.

Espero que lo entiendas.

Para detener el inicio automático de la sesión de Tmux, simplemente elimine las líneas que se agregaron anteriormente del ~/.bashrc de su sistema remoto. o ~/.bash_profile archivo.

Este sencillo consejo te ayuda a evitar perder el control de tus trabajos remotos. No siempre tiene que iniciar manualmente Tmux cada vez. Simplemente haga que Tmux se inicie automáticamente cada vez que ingrese a un sistema remoto mediante SSH, como se describe en esta guía.

Lectura sugerida :

  • Cómo iniciar automáticamente la sesión de pantalla en Linux al iniciar sesión
  • Reptyr:mueva un proceso en ejecución de un terminal a otro sin cerrarlo

Linux
  1. Ssh:¿cómo ejecutar un script inmediatamente después de conectarse a través de Ssh?

  2. ¿Cuándo usar Nohup?

  3. Ssh:¿registro de intentos de acceso Ssh?

  4. Ctrl-c Manejo en sesión Ssh?

  5. ¿SSH con Authorized_keys a un sistema Ubuntu con homedir encriptado?

5 formas de mantener las sesiones y los procesos SSH remotos en ejecución después de la desconexión

Cómo ejecutar comandos de Linux en un sistema remoto a través de SSH

Cómo iniciar automáticamente la sesión de pantalla en Linux al iniciar sesión

Ejecutar comandos en sistemas Linux remotos a través de SSH

SSHFS:Montaje de un sistema de archivos remoto a través de SSH

Cómo mantener las sesiones SSH remotas en ejecución después de la desconexión