Hace unos días vimos cómo autoiniciar sesión Tmux siempre que inicie sesión en un sistema Linux, ya sea de forma local o remota a través de SSH. Hoy vamos a ver cómo iniciar automáticamente Pantalla sesión en Linux al iniciar sesión. Las sesiones de pantalla de inicio automático serán de gran ayuda cuando se ejecute un proceso de larga duración a través de SSH. Si perdió la conectividad de la red por algún motivo, el proceso seguirá ejecutándose dentro de la sesión de Pantalla en el sistema remoto y podrá volver a conectarse cuando la red vuelva a estar en línea.
Sesión de pantalla de inicio automático en Linux al iniciar sesión
Para iniciar automáticamente la sesión de Screen en Linux, edite el ~/.bash_profile de su sistema Linux o ~/.bashrc archivo:
$ nano ~/.bash_profile
Si el archivo anterior no está disponible, simplemente créelo.
Y agregue las siguientes líneas en él:
if [[ -z "$STY" ]]; then screen -xRR default fi
Aquí, usamos -x indicador para adjuntar a una sesión de pantalla no desconectada. Y el -RR flag intenta reanudar la sesión de pantalla desconectada más reciente (en términos de tiempo de creación) que encuentra.
Guarde y cierre el archivo. Cerrar sesión y volver a iniciar sesión en el sistema. Accederá a una nueva sesión de Pantalla llamada ‘default’ .
Ahora, inicie cualquier proceso dentro de la sesión de Pantalla y desconéctelo presionando Ctrl+a seguido de d . El proceso seguirá ejecutándose dentro de la sesión de Pantalla incluso si la conexión a la red se desconecta. Una vez que la conexión a la red haya regresado, puede volver a conectarse mediante SSH al sistema remoto y verá que el trabajo aún se está ejecutando.
Eche un vistazo a la siguiente demostración animada:
Permítanme aclarar lo que acabo de hacer en el resultado anterior.
- 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 pantalla denominada "predeterminada".
- Dentro de la sesión de Pantalla, ejecuto un comando (Ej. watch grep \"cpu MHz\" /proc/cpuinfo) para monitorear la velocidad de la CPU.
- Luego, me desconecté de la sesión presionando Ctrl+a y d .
- Y luego, enumero las sesiones de Screen usando el comando "screen -ls" y salgo de la sesión SSH.
- 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 Screen sin ninguna interrupción.
Espero que lo entiendas.
Para detener el inicio automático de la sesión de Screen, simplemente elimine las líneas que se agregaron anteriormente desde el ~/.bashrc de su sistema remoto. o ~/.bash_profile archivo.