Automatisches Starten von X11- App. nach Server-Start

Support-Forum
Diskussionen rund um Installation, Betrieb und Anpassungen von Gentoo und dessen Paketen sowie dabei auftretenden (technischen) Problemen.
Deutsches Portal: www.gentoo.de
Post Reply
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Automatisches Starten von X11- App. nach Server-Start

Post by mcimaster »

Hallo zusammen,

ich habe eine Java- Applikation, die nur mit X11 lauffähig ist. Ich müsste diesen Dienst jedes mal automatisch starten, wenn der Server rebootet oder gestartet wird. Nun zu meiner Frage. Wie kann ich es erreichen, dass eine X11-Applikation, ohne! dass ich mich extra anmelde, im Hintergrund für meinen User gestartet wird? (Wer sich darunter nichts vorstellen kann: Es soll wie bei einem Windows Server funktionieren. Dieser wird hochgefahren und im Hintergrund laufen dann die notwendigen Prozesse und Programme.)

Ich weiß, auf einem Linux- Server sollte kein X11 installiert sein, etc. etc., jedoch lässt sich das aufgrund der Applikation nicht vermeiden.

Ich habe diesen Server noch nicht installiert. Deswegen bin ich sehr flexibel und würde mir gerne ein paar Meinungen einholen, wie man das Problem am besten lösen könnte.

Welchen X11-Server würdet ihr empfehlen?

Hardware:
Mainboard: Zotac ION ITX A, GeForce 9400 (dual PC2-6400U DDR2)
RAM: 4GB
HD: 2 x 500GB (RAID 1)

Ich würde mich über ein paar Vorschläge freuen.
Vielen Dank im Voraus
lg
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
User avatar
Finswimmer
Bodhisattva
Bodhisattva
Posts: 5467
Joined: Thu Sep 02, 2004 3:46 pm
Location: Langen (Hessen), Germany

Post by Finswimmer »

X &
DISPLAY=:0 $startprogram &

sollte funktionieren.
Alternativ noch ein su $user -c "DISPLAY...." nehmen.

Tobi
Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

Hallo Tobi,

vielen Dank für die schnelle Antwort. Ich werde es demnächst ausprobieren und natürlich berichten.

lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

Hallo Tobi,

ich habe die Zeilen in die /etc/conf.d/local.start eingefügt. Leider klappt es mit der X-Session nicht wie gewollt. Nachdem ich mich unter Fluxbox via Slim anmelde, ist kein X-App. (in dem Fall teste ich das mit Firefox) zu sehen und in der Prozessliste läuft ebenfalls kein Firefox.

Andere Non-X- Commands funktionieren jedoch ohne Probleme.

Hast du vielleicht eine Idee, woran das liegen kann?

Danke im Voraus,
lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
User avatar
Klaus Meier
Advocate
Advocate
Posts: 2908
Joined: Mon Apr 18, 2005 8:08 pm
Location: Bozen

Post by Klaus Meier »

Beim gdm und wohl auch beim kdm kannst du ein autologin konfigurieren, so dass Gnome automatisch gestartet wird und sich ein Benutzer anmeldet. Und dann das Programm als autostart eintragen. Jedenfalls, wenn du Gnome nutzt. Etwas viel, um nur ein Programm zu starten, aber wenn es sonst nicht geht....
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

Post by firefly »

Klaus Meier wrote:Beim gdm und wohl auch beim kdm kannst du ein autologin konfigurieren, so dass Gnome automatisch gestartet wird und sich ein Benutzer anmeldet. Und dann das Programm als autostart eintragen. Jedenfalls, wenn du Gnome nutzt. Etwas viel, um nur ein Programm zu starten, aber wenn es sonst nicht geht....
es muss ja keine gnome session sein ;) eine fluxbox session oder direkt das Program (dafür müsste man ein passendes script schreiben, welches nach dem login gestartet wird).
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

Hallo Klaus Meier,

danke für die Antwort. Ja, daran habe ich auch schon gedacht. Die Lösung ist sicherheitstechnisch nicht die beste und deswegen hoffe ich, dass es doch noch eine andere Lösung gibt.

Würden wir diesen Ansatz verfolgen, müsste ich nach dem Einloggen meinen User sperren können. Vielleicht mittels Screensaver? Aber das sind eben nicht so schöne workarounds.

lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

firefly wrote:
Klaus Meier wrote:Beim gdm und wohl auch beim kdm kannst du ein autologin konfigurieren, so dass Gnome automatisch gestartet wird und sich ein Benutzer anmeldet. Und dann das Programm als autostart eintragen. Jedenfalls, wenn du Gnome nutzt. Etwas viel, um nur ein Programm zu starten, aber wenn es sonst nicht geht....
es muss ja keine gnome session sein ;) eine fluxbox session oder direkt das Program (dafür müsste man ein passendes script schreiben, welches nach dem login gestartet wird).
Ja stimmt. Ich kann mir nicht vorstellen, dass es in der Unix/Linux Serverwelt keine Applikationen gibt, die X voraussetzen.

lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

Post by firefly »

ich habe mal ne zeitlang nen rechner mit freevo laufen lassen. freevo hatte ich beim starten des System über local.start gestartet.
freevo selbst bietet eine cmd-option mit der freevo selbst eine X-Session für sich selbst startet.

freevo macht das über
xinit <freevo-bin>
und ich hatte das freevo startscript über
su <user> -c <freevo start script>
über local-start gestartet.

An deiner stelle würde ich erst mal prüfen ob man das java programm direkt über xinit starten kann und wenn das geht kannst du diese zeile ja in local.start packen.

Trotzdem stellt sich mir die frage für was das program eine aktive X-Session benötigt.
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
User avatar
musv
Advocate
Advocate
Posts: 3380
Joined: Sun Dec 01, 2002 4:13 pm
Location: de

Post by musv »

Also auf einem Server würde ich auf einen Anmeldemanager a la GDM, KDM, xdm verzichten. Ein startx sollte reichen. Dass die X-App nicht startet kann auch einfach den Grund haben, dass X 'ne Weile zum Starten braucht. Ich würde dann wahrscheinlich probieren, ein Sleep einzubauen, um dem X-Server die nötige Startzeit zu geben.

Sowas in der Art:

Code: Select all

X & 
sleep 10 && DISPLAY=:0 $startprogram &
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

Post by firefly »

musv wrote:

Code: Select all

X & 
sleep 10 && DISPLAY=:0 $startprogram &
oder halt xinit verwenden, dass sollte das eigentliche Programm erst starten, wenn X soweit ist.
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

musv wrote:Also auf einem Server würde ich auf einen Anmeldemanager a la GDM, KDM, xdm verzichten. Ein startx sollte reichen. Dass die X-App nicht startet kann auch einfach den Grund haben, dass X 'ne Weile zum Starten braucht. Ich würde dann wahrscheinlich probieren, ein Sleep einzubauen, um dem X-Server die nötige Startzeit zu geben.

Sowas in der Art:

Code: Select all

X & 
sleep 10 && DISPLAY=:0 $startprogram &
Hallo,

ich habe sleep 10 eingefügt. Leider funktioniert es nicht. Es klappt nur, wenn ich mich auch unter fluxbox anmelde, dann startet auch der Browser nach 120 Sekunden. Ansonsten verschwindet der Prozess einfach aus der Prozessliste.
Irgend etwas mache ich falsch. Bloß was?

Ich verwende immer noch slim als Login-Manager. Es sieht so aus, als ob die Xsession gar nicht startet, solange ich sie selber nicht starte.

Die /etc/conf.d/local.start sieht so aus:

Code: Select all

su myuser -c "X" &
su myuser -c "/usr/bin/sleep 120 && DISPLAY=:0 /usr/bin/firefox" &
Hat jemand noch eine Idee?

lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

Post by firefly »

halloooo?? liest jemand überhaupt meine posts *fühltsichignoriert*
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

Hallo firefly,

sorry, dass ich noch nicht geantwortet habe. Wo kann ich die xinit editieren? Meinst du die xinitrc?

lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

Post by firefly »

mcimaster wrote:Hallo firefly,

sorry, dass ich noch nicht geantwortet habe. Wo kann ich die xinit editieren? Meinst du die xinitrc?

lg mci
nein xinit ist ein script/programm, welches eine X-Session startet und danach das angegebene program startet bzw. die xinitrc startet, falls vorhanden.
z.b. xterm

Code: Select all

xinit /usr/bin/xterm
startet xterm in einer X-Session.
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

firefly wrote:
mcimaster wrote:Hallo firefly,

sorry, dass ich noch nicht geantwortet habe. Wo kann ich die xinit editieren? Meinst du die xinitrc?

lg mci
nein xinit ist ein script/programm, welches eine X-Session startet und danach das angegebene program startet bzw. die xinitrc startet, falls vorhanden.
z.b. xterm

Code: Select all

xinit /usr/bin/xterm
startet xterm in einer X-Session.
Wow, ich weiß nicht ob ich das richtig verstehe, aber öffnet er mit xinit das Programm ohne dabei ein Window Manager zu verwenden? Sehe ich das richtig? Ich kann nämlich nichts auswählen außer die Applikation.

Nun, das ist schon einmal die richtige Richtung. Jedoch ist das ein Sicherheitsleck. Ich müsste die App. im Hintergrund laufen lassen, sodass niemand auf sie zugreifen kann. Der Zugriff sollte erst nach Eingabe von User & Pass ermöglicht werden.

lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
firefly
Watchman
Watchman
Posts: 5385
Joined: Thu Oct 31, 2002 8:24 pm

Post by firefly »

mcimaster wrote:Wow, ich weiß nicht ob ich das richtig verstehe, aber öffnet er mit xinit das Programm ohne dabei ein Window Manager zu verwenden? Sehe ich das richtig? Ich kann nämlich nichts auswählen außer die Applikation.
Jupp es wird eine X-Server Instanz gestartet und dann das Programm, welches X benötigt. Kein WM im Spiel.
mcimaster wrote:Nun, das ist schon einmal die richtige Richtung. Jedoch ist das ein Sicherheitsleck. Ich müsste die App. im Hintergrund laufen lassen, sodass niemand auf sie zugreifen kann. Der Zugriff sollte erst nach Eingabe von User & Pass ermöglicht werden.
Jo es ist ein Problem, dass lässt sich nicht ganz vermeiden, da dein Programm X benötigt. Eine Möglichkeit wäre, neben deiner App zusätzlich xscreensaver zu starten, welches gleich den screen sperrt.
Sobald der screen entsperrt ist, kannst du den screen nicht mehr so einfach wieder sperren, außer du stellst einen Timeout im xscreensaver ein oder du startest zusätzlich ein x-Terminal in dem du dann den screen wieder sperren kannst. (Über xscreensaver-command -lock).
Wenn das speren des screens über eine Tasten combo geschehen soll müsstest du xbindkeys oder ähnliches zusätzlich starten.

Dann sind wir schon fast soweit, dass wir eigentlich einen WM starten könnten.
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

firefly wrote:
mcimaster wrote:Wow, ich weiß nicht ob ich das richtig verstehe, aber öffnet er mit xinit das Programm ohne dabei ein Window Manager zu verwenden? Sehe ich das richtig? Ich kann nämlich nichts auswählen außer die Applikation.
Jupp es wird eine X-Server Instanz gestartet und dann das Programm, welches X benötigt. Kein WM im Spiel.
mcimaster wrote:Nun, das ist schon einmal die richtige Richtung. Jedoch ist das ein Sicherheitsleck. Ich müsste die App. im Hintergrund laufen lassen, sodass niemand auf sie zugreifen kann. Der Zugriff sollte erst nach Eingabe von User & Pass ermöglicht werden.
Jo es ist ein Problem, dass lässt sich nicht ganz vermeiden, da dein Programm X benötigt. Eine Möglichkeit wäre, neben deiner App zusätzlich xscreensaver zu starten, welches gleich den screen sperrt.
Sobald der screen entsperrt ist, kannst du den screen nicht mehr so einfach wieder sperren, außer du stellst einen Timeout im xscreensaver ein oder du startest zusätzlich ein x-Terminal in dem du dann den screen wieder sperren kannst. (Über xscreensaver-command -lock).
Wenn das speren des screens über eine Tasten combo geschehen soll müsstest du xbindkeys oder ähnliches zusätzlich starten.

Dann sind wir schon fast soweit, dass wir eigentlich einen WM starten könnten.
Hehehe. Ja genau. Okay, danke auf jeden Fall für die Tipps und die Hilfe. In ein paar Tagen werde ich versuchen es zu realisieren. Ich denke ich werde es mittels WM machen und den Zugang mittels xscreensaver sperren.

Wenn jemandem noch etwas einfällt, dann bitte nicht schüchtern sein, sondern schreiben. ;)

lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
User avatar
mcimaster
n00b
n00b
Posts: 71
Joined: Tue Sep 21, 2004 5:36 am

Post by mcimaster »

Ich wollte ein letztes mal pushen, bevor der Thread endgültig in der Versenkung verschwindet.

@ all, die mitgeholfen haben:

Vielen Dank!

lg mci
System: Acer TravelMate 4002LMi, Intel Pentium M 725 1,6GHz
60GB HDD, 512MB DDR, ATI Mobility Radeon 9700 64 MB
Qubit
Tux's lil' helper
Tux's lil' helper
Posts: 136
Joined: Mon Sep 23, 2002 2:59 pm
Location: /dev/urandom

Post by Qubit »

Hi,

wie wärs damit?:

http://de.wikipedia.org/wiki/Xvfb

Gruß Daniel
©Qubit
Post Reply