Starten von Programmen mit GUI ohne Displaymanager

11713
Ben

Ich habe gehört, dass es eine Möglichkeit gibt, Programme mit grafischer Oberfläche ohne Displaymanager zu starten - direkt vom Terminal aus. Ist das echt und wenn ja, wie kann ich das tun?

8
Müssen Sie mit der GUI interagieren? Daniel B vor 9 Jahren 0
@DanielB Ja, wahrscheinlich Ben vor 9 Jahren 0
Sie können sie ohne Displaymanager ausführen, benötigen jedoch eine laufende X-Sitzung. Welche Distribution verwendest du? Haben Sie einen X-Server installiert? Können Sie "xinit" oder "startx" ausführen? terdon vor 9 Jahren 1
@terdon yeah, ich arbeite derzeit lmint, aber die frage ist eher allgemeinwissen (nicht zielgerichtet). Ben vor 9 Jahren 0
verwandte http://superuser.com/questions/407043/is-it-possible-to-run-graphical-applications-such-as-firefox-ohne-Installation Ciro Santilli 新疆改造中心 六四事件 法轮功 vor 7 Jahren 0

4 Antworten auf die Frage

4
terdon

Sie können sie ohne Displaymanager ausführen, benötigen jedoch eine laufende X-Sitzung. Die Details hängen von Ihrer Distribution ab, aber Sie sollten in der Lage sein, eine minimale X-Sitzung mit einem einzelnen Terminal zu erhalten, indem Sie sie ausführen

xinit 

Ich habe das seit Jahren nicht mehr gemacht, aber beim letzten Mal würde das so etwas geben:

Dort können Sie ein GUI-Programm normal ausführen, vorzugsweise indem Sie es im Hintergrund starten (mit &), damit Sie den Zugriff auf Ihr einziges Terminal nicht verlieren.

Es kann erwähnenswert sein, dass das "normale Ausführen" höchstwahrscheinlich ein Hintergrunding des Prozesses ist. Daher möchten Sie wahrscheinlich `xterm &` verwenden, um ein zusätzliches Terminal zu erhalten, nicht nur 'xterm'. Usw. a CVn vor 9 Jahren 2
4
xeor

Hier sind die Grundlagen für das Ausführen einer GUI-App mit einer Verbindung (way ( vnc)). Arbeitet an RHEL7und Centos 7mit der Familie. Und aus meinem eigenen Docker-Image herausgerissen, das ich für Crashplan unter https://github.com/xeor/dockerfiles/tree/master/crashplan/ (siehe DockerfileSetup und init/setupStart) verwendet habe.

# Needed environment variables export DISPLAY=:99.0 export SCREEN_WIDTH=1200 export SCREEN_HEIGHT=960 export SCREEN_DEPTH=24 export GEOMETRY="$x$x$"  # 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 $ ~/.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 

Sie sollten jetzt eine Verbindung zum Server: 5900 herstellen können und die Anwendung sehen.

2
grawity

Ja. Machen Sie einfach dasselbe wie ein Display-Manager. Abgesehen von dem grafischen Anmeldebildschirm (den Sie in diesem Fall nicht benötigen) erledigt der Display-Manager nur zwei Dinge:

  1. Zuerst startet es einen X11 "Anzeigeserver" wie Xorg,
  2. Dann startet "Clients", die Xorg sagen, was und wo gezeichnet werden soll.

Sie können Tools wie startxX11 auf dieselbe Weise von einem Konsolen-Login aus starten. Xorg wird gestartet, gefolgt von den in Ihrer ~/.xinitrcDatei aufgeführten Clients .

Zum Beispiel könnte die .xinitrc-Datei Folgendes haben startkdeoder gnome-sessiondie einzelnen Komponenten auflisten (Fenstermanager, ein Bedienfeld / Taskleiste, ein Desktop usw.).

(Beachten Sie, dass es einige Unterschiede zwischen xinitund gibt. startxNormalerweise sollten Sie Letzteres verwenden, da einige Distributionen einige wichtige Konfigurationselemente haben, die durch einfaches Xinit ignoriert werden, nämlich das xserverrcSkript.)

Bei Wayland sind der Desktop und die Panels ein integraler Bestandteil des "Compositor", sodass die gesamte Oberfläche ohne zusätzliche Tools in einem einzigen Schritt gestartet wird. Sie können westonGNOME beispielsweise mit starten oder starten gnome-session --session=gnome-wayland.

1
pjc50

Sie können X-Anwendungen mit der ssh-X-Weiterleitung (ssh -X; möglicherweise muss auch in der Serverkonfiguration aktiviert werden) starten, vorausgesetzt, Sie verfügen über eine lokale X-Anzeige.

Die Anwendung wird lokal gestartet und angezeigt, während sie auf einem Headless-System ausgeführt wird. Auf dem Headless-System muss X installiert sein, um die richtigen Bibliotheken zu haben. Dies funktioniert möglicherweise nicht mit moderneren GNOME-Anwendungen.

Sie können auch Anwendungen $DISPLAYauf einem angeschlossenen X-Display starten, auch wenn Ihre Shell eine Remote-Shell ist (ssh oder Konsole). Wenn Sie root sind und die auf dem X-Display angemeldete Person nicht angemeldet ist, können Sie die xauthSicherheit außer Kraft setzen und trotzdem ein Fenster auf dem Display anzeigen. Dies funktioniert auch, wenn Sie zwei verschiedene X-Display-Server auf verschiedenen Monitoren haben.

Ein anderes Poster erwähnt VNC; Ich habe auch NX für diesen Zweck verwendet, und ich bevorzuge es.

Die Antwort ist unabhängig, aber nützlich Ben vor 9 Jahren 0