Tengo una edición de servidor Ubuntu ejecutándose y puedo usar SSH para realizar varias tareas. Lo que me gustaría es la capacidad de SSH en mi servidor para iniciar una aplicación de servidor y luego cambiar a otra sesión "virtual" (con la misma instancia de SSH) y ejecutar llamadas de clientes contra el servicio. Cuando inicio el servicio, es una llamada de bloqueo, por lo que no puedo ejecutar llamadas de clientes contra él sin activar otra sesión SSH.
Esperaba que hubiera una forma más ingeniosa, algo como lo hace la interfaz de usuario con los escritorios virtuales.
Lo que desea usar es la pantalla o, mejor aún, un contenedor fácil de usar alrededor de la pantalla llamado byobu.
Screen le permite ejecutar múltiples sesiones de terminal virtual en la misma sesión ssh. A tutorial y páginas de ayuda están disponibles.
byob es un contenedor que permite abrir fácilmente nuevas pantallas con una simple tecla de función en lugar de la combinación de teclas de ctrl-a. También muestra una línea de estado con todos los terminales virtuales abiertos que se pueden nombrar.
Otra característica interesante es el hecho de que toda su pantalla puede permanecer activa mientras su conexión ssh está desconectada. Simplemente se conecta de nuevo a través de ssh y llama a byobu y todo es como antes.
Por fin algunos capturas de pantalla de byobu.
Pantalla GN es la respuesta que has estado buscando, pero se parece mucho a Vi. Has aprendido mucho sobre los comandos para configurar un entorno de pantalla exitoso. Aquí hay algunas cosas para comenzar. En primer lugar, querrá esto .screenrc
http://paste.ubuntu.com/473764/ guárdelo en el servidor remoto en la carpeta de inicio de su usuario. A continuación, instale la pantalla en la máquina remota (Sudo apt-get install screen
) A continuación, querrá activarlo aquí, hay algunos comandos para "activar la pantalla":
screen
- Esto es bastante simple. Comienza una nueva sesión de pantalla screen -ls
- Lista todas las sesiones de pantalla activas. Sí, puede tener múltiples terminales dentro de múltiples pantallas. SO DULCE.
Muestra
screen -ls
There is a screen on:
16467.pts-0.ubuntu (08/05/2010 07:47:53 PM) (Detached)
1 Socket in /var/run/screen/S-marco.
screen -x <pid>
- Esto reanudará una sesión de pantalla separada, IE: screen -x 16467
Una vez que esté en una pantalla (y haya empleado mi muestra .screenrc
archivo) Verá lo siguiente en la parte inferior:
(LOAD) 0$* bash
Cuál es la carga de los servidores y una lista de todas las "pestañas de terminal" abiertas. Actualmente solo una ventana. Escriba algo y luego presione esta combinación de teclas: Ctrl + A
suelte, luego presione c
. Ctrl + A
es la secuencia de escape. Todos los comandos se inician con esta combinación. c
es crear una nueva pestaña. Notará que el pie de página tiene (LOAD) 0-$ bash 1$* bash
que muestra que hay otra pestaña abierta y la pestaña activa es el número 1. Puede abrir un máximo de 60 pestañas por sesión de pantalla.
Si desea salir de la pantalla pero mantenerla en funcionamiento, use Ctrl + A
y luego d
que separará su sesión. Finalmente, puede cerrar las pestañas usando Ctrl + A
luego k
que matará esa pestaña (si se bloquea) pero normalmente puede escribir exit
como si estuviera en una terminal y lo hará cierra esa pestaña.
Por último, para enumerar todas las ventanas abiertas, puede escribir Ctrl + A
y luego "
.
Hay una gran cantidad de opciones disponibles para la pantalla que debe verter sobre el archivo man para obtener más información. Hay algunos inconvenientes. No puede usar su barra de desplazamiento en la pantalla, tiene que usar controles de búfer para retroceder, sin embargo, lo anterior es suficiente para comenzar a ver si esta es una opción viable. Una gran cosa sobre esto y algo que he tratado mucho como administrador del sistema: conectividad de red. ¡Si su red se cae, sus operaciones no se perderán! Dado que la pantalla se está ejecutando en el servidor. Simplemente necesita volver a iniciar sesión a través de SSH y luego screen -ls
y screen -x
nuevamente en su sesión.
Si está utilizando Ubuntu Server Edition, byobu
es definitivamente su mejor opción. La Guía del servidor Ubuntu tiene alguna documentación útil .
En general, es más fácil de aprender y usar que screen
y se instala de manera predeterminada.
Uso Emacs, por lo que la configuración predeterminada de la pantalla me dificulta la vida.
$ cat /home/cjac/.screenrc
escapar
¡Trata eso!