
Me encanta usar screen, pero realmente no he tenido mucha experiencia usándolo a través de ssh. En el trabajo, recientemente me otorgaron una cuenta shell y decidí intentar configurarla para que la pantalla se ejecute cuando inicie sesión. Estoy iniciando sesión de forma remota a través de ssh con PuTTY.
De todos modos, tenía dos métodos y ambos parecían funcionar bastante bien:
- PuTTY configurado para ejecutar /usr/bin/screen -R al conectarse y
- Agregué esta línea a mi .bashrc:
if [ -z "$STY" ]; then /usr/bin/screen -R; fi
El problema es que más tarde intenté escanear algunos archivos que no pude conectar. Decía "Debe estar conectado a una terminal". También probé Filezilla y tuvo importantes problemas de conexión. Busqué un poco en Google y aparentemente no soy la primera persona a la que se le ha estropeado sftp al intentar usar la pantalla como shell de inicio de sesión.http://winscp.net/forum/viewtopic.php?t=1715
Me preguntaba si alguien podría darme alguna idea de por qué sucede esto porque realmente no tengo ni idea y me interesaría entenderlo y tal vez encontrar una solución.
Respuesta1
Debe colocar todo lo relacionado con shells de inicio de sesión ~/.bash_profile
y todo lo relacionado con shells interactivos (sin inicio de sesión) en ~/.bashrc
. Desde la página del manual de bash(1):
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
Entonces, en lugar de simplemente hacer un enlace simbólico ~/.bashrc
( ~/.bash_profile
o viceversa), deberías tener dos archivos separados que contengan cosas algo diferentes.
Ingrese [ -z "$STY" ] && then /usr/bin/screen -R
solo ~/.bash_profile
y luego se ejecutará la pantalla solo cuando esté iniciando sesión en lugar de ejecutar la pantalla cada vez que genere un shell interactivo (no tengo fuentes de scp a mano en este momento, pero tengo un ligero recuerdo de ello). en realidad generando un shell para que el shell genere procesos ~/.bashrc
).