He estado leyendo sobre cómo iniciar automáticamente una pantalla cuando estoy sshen un servidor remoto. Me gustaría agregar una línea simple .bash_profilepara comenzar screencuando entro sshy NO salir de mi conexión remota cuando desconecto la pantalla.
He estado buscando en exec screeny casi todas las combinaciones de -d, -r, -Dy -Rno puedo entender por qué banderas que necesito.
Lo ideal sería escribir ssh whatevere iniciar sesión en el servidor en un nuevo screeno 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 sshinicio de sesión normal para ese servidor (donde verías el motd). Desde allí puedo screen -rvolver a la pantalla que quiera, o presionar Ctrl dnuevamente para cerrar sesión.
fuente

logoutoexitjusto 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 -Rsi 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 -lsprueba que Tony mencionóscreen -RRse 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; fiCreará 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_profileo.bashrcen la siguiente:.bashrcAquí está el guión:
PD: Si desea habilitar esto para la terminal local, elimine
&& ! -z "${SSH_CLIENT}en la primera línea.fuente