Lanzar programas con GUI sin administrador de pantalla

9

Escuché que hay una manera de iniciar programas con interfaz gráfica sin administrador de pantalla, directamente desde la terminal. ¿Es esto real y si es así, cómo puedo hacer eso?

Ben
fuente
¿Necesitas interactuar con la GUI?
Daniel B
@DanielB sí, probablemente
Ben
1
Puede ejecutarlos sin administrador de pantalla, pero necesita una sesión X en ejecución. ¿Qué distribución estás usando? ¿Tienes un servidor X instalado? ¿Puedes correr xinito startx?
terdon
@terdon sí, actualmente estoy ejecutando lmint, pero la pregunta es más para conocimiento general (no dirigido a la distribución).
Ben
relacionada superuser.com/questions/407043/...
Ciro Santilli冠状病毒审查六四事件法轮功

Respuestas:

5

Puede ejecutarlos sin administrador de pantalla, pero necesita una sesión X en ejecución. Los detalles dependerán de su distribución, pero debería poder obtener una sesión X mínima con un solo terminal ejecutando

xinit

No he hecho esto en años pero, la última vez que lo hice, eso daría algo como esto:

ingrese la descripción de la imagen aquí

Una vez allí, puede ejecutar un programa GUI normalmente, preferiblemente ejecutándolo en segundo plano (con &) para que no pierda el acceso a su único terminal.

terdon
fuente
2
Vale la pena mencionar que "ejecutarlos normalmente" probablemente involucrará el fondo del proceso, por lo que es muy probable que desee utilizar xterm &para obtener un terminal adicional, no solo xterm. Etc.
un CVn
6

Aquí están los conceptos básicos para ejecutar una aplicación GUI sin cabeza, con una forma ( vnc) de conectarse a ella. Trabaja en RHEL7y Centos 7, con la familia. Y arranqué mi propia imagen de Docker que utilizo para Crashplan ubicada en https://github.com/xeor/dockerfiles/tree/master/crashplan/ (ver Dockerfilepara la configuración y el init/setupinicio.

# Needed environment variables
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"

# Needed packages
yum install -y xorg-x11-server-Xvfb x11vnc gtk2 xorg-x11-fonts-*

# Set a password (if variable vncpass is sat, else its `secret`)
mkdir -p ~/.vnc && x11vnc -storepasswd ${vncpass:-secret} ~/.vnc/passwd

# Start up the fake display and run the application you want (the `java ...` part)
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" java .... > log/ui_output.log 2> log/ui_error.log &

# Wait for the app to start, or else, the vnc server will die before starting
sleep 5

# vnc itself
x11vnc -forever -usepw -shared -rfbport 5900 -display $DISPLAY

Ahora debería poder conectarse al servidor: 5900 y ver la aplicación.

xeor
fuente
3

Si. Simplemente haga lo mismo que hace un administrador de pantalla. Además de la pantalla de inicio de sesión gráfica (que no necesita en este caso), el administrador de pantalla solo hace dos cosas:

  1. Primero inicia un "servidor de visualización" X11, como Xorg,
  2. luego comienza "clientes" que le dicen a Xorg qué y dónde dibujar.

Puede usar herramientas como startxiniciar X11 de la misma manera desde el inicio de sesión de la consola; lanzará Xorg seguido de los clientes que figuran en su ~/.xinitrcarchivo.

Por ejemplo, el archivo .xinitrc podría tener startkdeo gnome-session, o podría enumerar los componentes individuales (el administrador de ventanas, un panel / barra de tareas, un escritorio ...)

(Tenga en cuenta que hay algunas diferencias entre xinity startx, por lo general, debe usar este último, ya que algunas distribuciones tienen algunas piezas importantes de configuración que Xinit ignorará, es decir, el xserverrcscript).

Con Wayland, el escritorio y los paneles son una parte integrada del "compositor", por lo que toda la interfaz comienza en un solo paso sin herramientas adicionales. Por ejemplo, puede ejecutar westono iniciar GNOME usando gnome-session --session=gnome-wayland.

usuario1686
fuente
1

Puede iniciar aplicaciones X utilizando el reenvío ssh X (ssh -X; es posible que también deba habilitarse en la configuración del servidor), siempre que tenga una pantalla X local .

La aplicación se iniciará y se mostrará localmente, mientras se ejecuta en un sistema sin cabeza. Necesitará tener X instalado en el sistema sin cabeza para tener las bibliotecas correctas, y esto puede no funcionar con aplicaciones GNOME más modernas.

También puede usar $DISPLAYpara iniciar aplicaciones en una pantalla X adjunta, incluso si su shell es remoto (ssh o consola). Si eres root y la persona que inició sesión en la pantalla X no lo está, puedes anular la xauthseguridad y abrir una ventana en su pantalla de todos modos. Esto también funciona si tiene dos servidores de visualización X diferentes en monitores diferentes.

Otro cartel menciona VNC; También he usado NX para este propósito, y lo prefiero.

pjc50
fuente
La respuesta no está relacionada, pero es útil
Ben