Abrir múltiples "Terminales" sin GUI (startx)

12

No sé si el título se explica por sí mismo, pero quería tener múltiples (dos por ahora serían suficientes) terminales abiertas sin tener que iniciar el Escritorio.

Quiero tener un script PHP en ejecución (a tiempo completo) y poder seguir usando mi terminal Raspi tal como está cuando inicio mi Raspi con Raspbian.

pasadinhas
fuente
¿ssh o te conectas directamente a tu pi?
SteveIrwin
Hola, lo que es posible que haya deseado puede ser proporcionado por dvtm. brain-dump.org/projects/dvtm
cgte hace

Respuestas:

8

Simplemente use Alt + F1-F12, para que pueda tener 12 pestañas de consola diferentes sin iniciar una GUI

nnm
fuente
esta es realmente la opción que uso actualmente :)
pasadinhas
1
Esto no funciona en Raspbian, no hay inicio de sesión en ninguno de los otros ttys.
AndreKR
9

Si está en la consola (teclado y pantalla adjuntos), debería poder usar el sistema de consola virtual Linux para cambiar entre múltiples terminales usando (ctrl-) alt-F1 a F12 y más con shift.

El número de terminales configurados y el número de ellos que tienen procesos getty (que le solicitan inicio de sesión y contraseña) depende de la configuración .

XTL
fuente
2
+1 porque cuando se conecta directamente a la máquina, esta es la forma "estándar" de obtener otro inicio de sesión, y no requiere instalar screen / tmux ..
Kiirani
6

Incluso mejor de lo que screenes (en mi opinión) tmux. Puede instalarlo a través de sudo apt-get install tmux. Consulte también la página de manual con man tmux.

Puede comenzar escribiendo tmuxen una de sus consolas (consulte la respuesta de XTL).

Estos son los comandos más importantes ( C-b dsignifica: presione control y B al mismo tiempo, luego presione D):

  • C-b d separar sesión
  • tmux attach en el shell para volver a adjuntar una sesión en ejecución
  • C-b " dividir el marco actual horizontalmente (se inicia un nuevo shell)
  • C-b % dividir el marco actual verticalmente (se inicia un nuevo shell)
  • C-b arrow (up, down, left, right) navegar entre ventanas en el marco actual
  • C-b c nuevo marco (se inicia un nuevo shell)
  • C-b n siguiente fotograma
  • C-b l último cuadro
  • C-b benviar C-ba la aplicación en ejecución
Arne
fuente
Fuerte defensor de tmux aquí, también. La configuración de la línea de estado es mucho más simple y maneja mejor los redibujos.
codey
1
Debe tenerse en cuenta que tmux no tiene el mismo comportamiento que la pantalla con respecto a adjuntar la sesión a múltiples VT ("screen -x")
Kiirani
3

Puedes hacer esto con la pantalla también. Con la pantalla, incluso puede desconectarse de su sesión de pantalla, cerrar sesión, iniciar sesión y luego volver a conectarla a su sesión de pantalla sin perder nada. Los programas continuarán ejecutándose y toda la salida continuará mostrándose en los terminales de los que se desconectó.

Un par de enlaces a tutoriales en pantalla:

http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/

http://magazine.redhat.com/2007/09/27/a-guide-to-gnu-screen/

Un enlace a un hilo con algunos consejos útiles .screenrc:

https://bbs.archlinux.org/viewtopic.php?id=55618

Un tutorial específico de Raspberry Pi:

http://raspi.tv/2012/using-screen-with-raspberry-pi-to-avoid-leaving-ssh-sessions-open

Eric
fuente
3
  1. Si el script php que desea ejecutar no interactúa con el usuario o necesita información,

    puedes usar el &comando que envía el script al fondo

    Aquí hay un ejemplo.

    pi@raspberrypi ~ $php code1 &
    

    Esto enviará el script al fondo donde seguirá ejecutándose.

  2. Si ssh en su terminal, puede ssh en el mismo usuario dos veces y tener dos terminales.

  3. Si desea abrir múltiples terminales desde una sesión ssh,

    Debería mirar la pantalla o incluso mejor instalar, byobuque es un contenedor alrededor de la pantalla.

    byobu 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.

Espero eso ayude.

SteveIrwin
fuente
2

Para completar, otra opción es usar byobu . Es una capa conveniente en la parte superior de la pantalla GNU . Proporciona valores predeterminados agradables y, en mi sentido, es más fácil de usar. Personalmente lo uso en mi Rapsberry Pi y funciona bien. Para instalarlo, simplemente escriba:

$ sudo apt-get install byobu

Una vez instalado, configúrelo a través de:

$ byobu-config

Puede elegir iniciarlo automáticamente al iniciar sesión y alternar los applets de notificación de estado ( tiempo de actividad, carga, fecha ... )

ingrese la descripción de la imagen aquí

Como nota al margen, este tipo de consola virtual también es útil para compartir la misma entrada / salida de la consola entre diferentes usuarios en diferentes máquinas (puede llamarlo compartir pantalla en modo texto ).

Laurent Grégoire
fuente
Intenté byobou el otro día y no estaba contento. El control a través de las teclas de función era muy escamoso. No funcionó en OS X, también tuve problemas cuando estaba bajo Debian. Me quedaré con tmux y sus comandos. Las teclas de función también chocan con mc (comandante de medianoche).
Arne
En cuanto al conflicto de teclas de función con mc , puede cambiarlos en byobu (puede seleccionar fácilmente entre dos modos diferentes mediante byobu-config).
Laurent Grégoire
2

Como su requisito original era lanzar un script PHP en segundo plano, puede usar el comando nohup. Ejemplo:

$ nohup php myscript.php &

Una vez iniciado, el comando especificado como argumento de línea de comando nohupse ejecuta en segundo plano , y su entrada / salida se desvincula del terminal que lo inició, para evitar que la SIGHUPseñal (de ahí el nohupnombre) se envíe al proceso en segundo plano cuando sale de la consola de inicio (la señal generalmente hace que el programa se cierre). La salida se redirige a un archivo (predeterminado nohup.out).

Para más información: man nohup.

Para obtener una respuesta mejor y más completa, es posible que desee "demonizar" completamente su programa. Probablemente pueda encontrar recursos en la web que explican cómo hacerlo con scripts PHP.

Laurent Grégoire
fuente
Algunos shells (bash, zsh?) También tienen un comando disownpara evitar que se cuelguen procesos en segundo plano seleccionados.
XTL