ubuntuusers.de

Ubuntu Server Autostart (Startup Applications)

Status: Ungelöst | Ubuntu-Version: Server 12.04 (Precise Pangolin)
Antworten |

hfb

Anmeldungsdatum:
5. August 2007

Beiträge: 641

hallo neuronet,

ich bin über den thread gestolpert. Max-Ulrich tummelt sich ja aktuell noch im Forum rum, aber hat sich noch nicht wieder zu Deinem Anliegen gemeldet. Daher sag ich mal was dazu.

"Leerzeichen mit Backslash escapen"

Die shell interpretiert Leerzeichen normalerweise als Objkttrenner, als Programmaufruf von nachfolgenden Optionen und/oder Parametern. Damit das nicht passiert, Denn bei Dir soll ja alles zusammen als Befehl ausgeführt werden, bzw die weiteren Bestandteile an wine übergeben werden, musst Du verhindern, dass die shell die Leerzeichen interpretiert, statt dessen wine aufruft und der dann den Rest der Befehlszeile interpretiert. Wie Du selbst schreibst, musst du den Lehrzeichen eben nur eine Backshlash voranstellen. Also so z.B.

$ wine\ Mit\ zusaetzlichen\ Parametern

man soll den Aufruf in eine "init.d" schreiben

Darüber wurde ja schon diskutiert. Das passiert, wenn Du es in rc.local schreibst. Du musst nur bedenken, dass wine dann als root läuft, außer der schon genannte Startbefehl wird explizit mit einem anderen Benutzer gestartet.

hfb

neuronet

(Themenstarter)

Anmeldungsdatum:
13. Dezember 2013

Beiträge: 13

Vielen Dank für den Tipp.

Ich hab's versucht, mit dem Leerzeichen escapen. Hat aber auch nicht funktioniert ☹

Ich benötige für meine Applikation (exe) das gestartete Wine Programm, eine Internetverbindung und meine Applikation besitzt eine graphische Oberfläche.

Der Aufruf lautet, soweit ich es überblicke:

1
 wine /root/.wine/drive_c/Program\ Files\ (x86)/Programmname.exe

1.Wann wird die rc.local ausgeführt? Zu Beginn oder Ende des Init-Vorgangs? Evtl. muss ich ja noch was anderes davor starten oder meinen Befehl in ein anderes File aus dem init.d - Ordner schreiben? (Ich habe gelesen, dass ein X-Server für die optische Oberfläch verantwortlich ist. Wann wird dieser gestartet?

2.Wäre es eine Möglichkeit, einen Benutzer ohne Passwort (aber mit eingeschränkten Rechten anzulegen) und diesem die Exe in die Autostart zu legen? (der normale Autostart funktioniert mit der Applikation einwandfrei)

hfb

Anmeldungsdatum:
5. August 2007

Beiträge: 641

Der Aufruf lautet,

Da sind noch mehr zeichen drin, die escapet sein müssen. So wie es für mich aussieht, ist es einfacher so und sollte klappen:

$ wine "/root/.wine/drive_c/Program Files (x86)/Programmname.exe"

eine graphische Oberfläche.

Mh, das hatte sich fuer mich in früheren Beiträgen nicht so angehört, aber damit ist rc.local vielleicht aussen vor (ich bin nicht zu 100% sicher), es geht dann aber nur, wie schon früher gesagt, in der .bashrc (wenn bash Deine shell ist). Wenn Du Dich anmeldest an einem Terminal, wird diese Datei abgearbeitet. Aber noch mal zum Rekapitulieren: Wolltest Du nicht von einem anderen Rechner aus auf diese GUI zugreifen? Dann müsstest Du Dich aber vorher eben am Server anmelden und wenn Du diese Terminalanmeldung beendest, ist auch Dein wine wieder futsch. Ich würde zuerst mit dem init versuchen, dann mit der .bashrc.

Wenn Du remote an die GUI willst und dort auch Linux benutzt mit GUI, kannst Du versuchen Über X11 die Ausgabe auf Deinen Client (Arbeitsplatz-Rechner) um zu lenken. Da kenne ich mich dann aber nicht mehr genug aus. Bei einem Windows-Client müsstest Du auf diesem einen X11-Server installieren (Obacht bei X11, da ist Dein Arbeitsplatz ein Server und Dein wine-Programm ein Client).

1.Wann wird die rc.local ausgeführt?

Keine Ahnung, hab mal gesucht, aber nichts dazu gefunden. Kannst auch einen normalen init-script schreiben (Struktur ergibt sich aus vorhandenen und beachte

$ man init

dabei. Ein link muss dann in den Ordner rc2.d (siehe auch dortige Beispiele), den 3 erreichtst Du in eiem gui-freien Server normalerweise ja nicht. Durch die Nummer im Link legst Du den Zeitpunkt des Starts fest, bzw was vorher schon alles gelaufen sein muss. Wenn Du aktuell sein willst, machst Du daraus eine Upstartup-Job. Musst Du Dich dann drauf einarbeiten (musst Du für ein init-script aber ja auch).

habe gelesen, dass ein X-Server für die optische Oberfläch verantwortlich ist. Wann wird dieser gestartet?

Auf einem server nie. Hier kommen wir dann aber auf das X-Terrain, und da muss ich mich enthalten. Wie oben gesagt, muss eigentlich ein X-Server auf deinem Arbeitsplatz laufen, die x-calls an den Server müssen von deiner Software kommen, hier wine (nach meinem Bruchstückwissen sind die da schon über Library-Calls drin)

Testen kannst Du das schon über die init-Schiene mit der Definition des Ausgabe Displays. Der wine braucht dann eine passende Umgebungsvariable ähnlich wie

DISPLAY=User-Linux:0

D.H. X-Ein-/Ausgabe erfolgt am Rechner "User-Linux" auf das Display 0 (das ist üblicherweise das Standarddisplay). Man muss dann aber noch ein paar Rechte setzen, damit Deine wine-Anwendung auf auf dieses DISPLAY ausgeben darf. (Ich hab da aber zu wenig Know-How, muesstet Du ein einem passenderen Forum ein Thread zu aufmachen)

2.Wäre es eine Möglichkeit, einen Benutzer ohne Passwort (aber mit eingeschränkten Rechten anzulegen) und diesem die Exe in die Autostart zu legen?

Dazu müsste wieder dieser Benutzer sich auf dem Server anmelden (diese Frage ist .bashrc orientiert). Also zunächst nur relevant, wenn es über die init-.Schiene mit X11-Umlankung (s.o.) nicht klappt. Der wine sollte aber auch bei der init-Methode nicht mit root laufen, sondern in dem Init-Script einen anderen User verwenden (siehe früherer Beitrag). Da der Start aber von root ausgeht, muss man dabei kein Passwort eingeben. Testen kannst Du aber zunächst indem root den wine startet, damit nicht weitere Probleme schon am Anfang dazukommen.

hfb

Antworten |