He estado leyendo sobre cómo iniciar automáticamente una pantalla cuando estoy ssh
en un servidor remoto. Me gustaría agregar una línea simple .bash_profile
para comenzar screen
cuando entro ssh
y NO salir de mi conexión remota cuando desconecto la pantalla.
He estado buscando en exec screen
y casi todas las combinaciones de -d
, -r
, -D
y -R
no puedo entender por qué banderas que necesito.
Lo ideal sería escribir ssh whatever
e iniciar sesión en el servidor en un nuevo screen
o puede volver a conectar una pantalla antigua, me gustaría saber cómo hacer ambas cosas para ver cuál me gusta más. Luego puedo escribir Ctrl ado Ctrl dy hacer que me devuelva al ssh
inicio de sesión normal para ese servidor (donde verías el motd). Desde allí puedo screen -r
volver a la pantalla que quiera, o presionar Ctrl dnuevamente para cerrar sesión.
fuente
logout
oexit
justo después de esa línea st una sesión ssh se termina inmediatamente una vez que ctrl + D cierra la pantalla?Tuve problemas con la creación de 40 sesiones de pantalla en cascada con algunas de las soluciones al comenzar una nueva ventana o sesión de pantalla. Pude eliminar la pantalla en cascada y crear una nueva sesión si no existiera una con esto:
Comprueba si estás en una sesión de pantalla y se ejecuta
screen -R
si no lo estás. Sin la prueba, aparece el mensaje "¿Adjuntar desde el interior de la pantalla?" advertencia de la pantalla cada vez que crea una nueva ventana de pantalla.fuente
screen -ls
prueba que Tony mencionóscreen -RR
se volverá a unir a la primera sesión disponible o creará una si es necesario.fuente
Si entiendo tu necesidad, deberías intentar:
if $(screen -ls | grep -q pts); then screen -x; else screen -R; fi
Creará solo una sesión de pantalla, de lo contrario, se volverá a conectar a la existente en una ventana múltiple (incluso si tiene varias sesiones ssh, terminará en la misma sesión de pantalla)
fuente
screen -xR
, que parece ser analizado como "adjuntar si hay algo a lo que adjuntar, de lo contrario crea una nueva pantalla".Aquí una pequeña extensión,
la secuencia de comandos para el control bashrc verifica si hay más de una sesión de pantalla separada. Si hay más, debe elegir la sesión de forma manual. Cuando hay una sesión separada, vuelve a esta sesión. Si sale de la sesión, la sesión ssh también se cerrará.
fuente
Si desea conectarse automáticamente a una sesión de pantalla cuando se conecta a través de SSH, agregue el código a continuación en su máquina remota
.bash_profile
o.bashrc
en la siguiente:.bashrc
Aquí está el guión:
PD: Si desea habilitar esto para la terminal local, elimine
&& ! -z "${SSH_CLIENT}
en la primera línea.fuente