Hi,
es ist das erste Mal, das ich einen Ubuntu-Server nutze. Ich habe wine
installiert und eine Windows Applikation damit laufen lassen. Nun möchte
ich, dass diese Applikation auch nach einem Serverneustart automatisch
startet, d.h. der Server soll sich automatisch hochfahren und das
Programm starten, ohne das wer eingreifen muss.
Wie kann ich das am einfachsten machen?
Hi, habe ich mir angesehen. Vielen Dank.
Doch der Autostart ist ja dafür da, dass nach dem Anmelden der
graphischen Oberfläche die dort eingetragenen Programme starten.
Ich nutze Ubuntu Server. Nach einem Ausfall wird der Server zwar
neugestartet, doch ist nicht zwangsweise der da, der sich auch an der
graphischen Oberfläche anmeldet, um so den Autostart zu aktivieren.
Und unter wine habe ich die Applikation schon zum Laufen gebracht,
dennoch startet diese nicht automatisch...
man init
Ist ein Dämon, der erste aufgerufene Prozess beim Start. Hat
verschiedene Runlevels (Start, Neustart, Herunterfahren, ...) in denen
du selbsgeschriebene Shell-Skripte ablaufen lassen kannst.
Danke für die Antworten!
Wie funktioniert das eigentlich mit der Oberfläche des Programms. Wenn
ich die Exe in die init.d lege und dann mit am Server anmelde, ist dann
das Programm da schon offen?
Wird diese init.d von "Root" aufgerufen, d.h. ist dann mein System
irgendwie unsicher?!
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.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)
sven schrieb:> Hi,>> gibt es die Möglichkeit, die GUI im Hintergrund vor dem Init zu starten?> Wie würde das gehen?> Bin aktuell etwas ratlos...
ein windowsprogramm auf einem linuxrechner - uiiii das muss aber eine
supertollanwendung sein… brech
sei's drum.
ICH würde die anwendung in einer VM, z.b. virtualbox, laufen lassen
"headless" ist da das stichwort.
wenn du unbedingt auf wine bestehst, und das ganze beim systemstart ohne
vorhandene grafische oberfläche gestartet werden soll, kannst du z.b.
einen vncserver in ein init-script packen. der startet dann eine
grafische oberfläche im speicher, also ohne sie auf der grafikkarte
anzuzeigen, und dort kannst su deine anwendung in den autostart der
jeweiligen gui packen.
ich halte das jedoch für stümperei - die vm ist die weitaus bessere
vorgehensweise.
Also als VirtualBox ist es uns bei unserem Anbieter nicht erlaubt.
Es handelt sich um eine Vorgabe, dass wir Ubuntu nehmen sollen und auch
dass diese Windows Applikation möglichst endlos laufen soll (auch wenn
es nicht optimal ist).
Mein Lösungsweg (dachte ich zumindest) ist folgender
1.Neuen Benutzer mit Autologin anlegen
2.Unter diesem Benutzer Wine und die Windows Applikation installieren
3.Die Windows Applikation in die Startup-Applikation legen
Nun passiert folgendes nach einem Reboot:
Erst wenn ich mich mit NX Client als Benutzer einlogge startet der
Server und somit auch die Windows Applikation automatisch.
Aber leider nicht direkt nach dem Reboot (also ohne einloggen)
Besteht hier meinerseits noch ein Denkfehler? Kann es sein, dass es
läuft und ich erhalte nur mit dem NX-Client eine neue Desktopansicht und
schalte mich nicht auf das existierende Programm?
Wie kann ich den Startup-Vorgang debuggen?
Hallo,
nun muss ich doch nochmal auf dieses Thema zurückkommen, da ich
zwischenzeitlich ein anderes großes Projekt hatte, und...
So, fakt ist ich habe einen Ubuntu Server mit Wine und einer
installierten Windows app., auf den Server komme ich mit X2Go.
Nun habe ich nach folgenden Anleitungen das Autologin und den Start der
Wine-exe erstellt:
http://www.backtrack-linux.org/forums/showthread.php?t=28062http://ubuntuforums.org/showthread.php?t=870877
Leider funktioniert es nicht und ich kann nicht sagen, was überhaupt
durchgeführt wird, oder nicht.
Ich habe nun das auth.log File angesehen, aber heißt es während der
Autostartzeit ständig
pam_unix(login:session): session opened for user testserver by
testserver(uid=0)
pam_unix(login:session): session closed for user testserver
pam_unix(login:session): session opened for user testserver by
testserver(uid=0)
usw.
Woran kann dies liegen?
du vermischst ein x das root gehört mit x-programmen die unter
'testuser' ausgeführt werden ohne das sie wissen an welches display sie
sich verbinden sollen.
daszu kommt das unter dem root-x wahrscheinlich kein 'xhost +' gesetzt
ist so das andere user sich nicht daran verbinden dürfen - und und und.
die .bashrc ist außerdem ein ganz schlechter ort um sowas auszuführen.
die wird jedesmal gesourced wenn eine interaktive bash unter dem
jeweiligen user ausgeführt wird.
WARUM nicht einfach ein grafisches autologin als 'testuser' und ein
shellscript im autostart-ordner?
Ich bin eigentlich erst so vorgegangen:
1. Windows Programm in den Autostart des Benutzers
> nach einem Login per X2Go wurde das Programm wie gewünscht geöffnet
2. Zudem einen Autologin des Benutzers eingetragen
> das Programm wurde dann aber trotzdem erst gestartet, nachdem ich mich
eingeloggt habe. Und das obwohl der Autologin "ON" ist.
Warum?
Deshalb habe ich gegoogelt und gelesen, dass die graphische
Benutzeroberfläche nicht aktiv ist und ich dieses erst durch ein
Bash-Skript starten muss. Hier habe ich unterschiedliche Namen gefunden
.bash_profile oder .bashrc und dazu noch unterschiedliche Inhalte
z.B.
1
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
2
startxfce4
3
fi
Zudem benötigt meine Applikation auch
-Internetverbindung und Wine
Ich weiß nicht, ob ich das auch explizit starten muss?
Woher weiß ich, wie genau die speziellen Startbefehle heißen müssen?!
Ich würde mich sehr freuen, wenn mir hier jemand konkret weiterhelfen
könnte!!! Außerdem bin ich inzwischen sehr verwirrt, da ich von sovielen
verschiedenen Wegen und Befehlen gelesen habe (Bash oder Shell-Skript
usw. oder über Xvnc).
Andere sagen sogar, dass man auf einem VPS-Server gar keine graphische
Oberfläche installieren soll. Allerdings ist das auch eine Preisfrage,
da der Ubuntu-Server mit mtl. 3 EUR kostet und der Windows 9 EUR.
,
Nun muss ich nur noch irgendwie den X-Server korrekt starten und sagen,
wo und wie der die application starten soll?
...so denke ich es mir zumindest.
ein beispiel wie ich das hier zuhause mache :)
'puck' ist ein laptop, der server. darauf installiert ist ein vnc-server
und xfce4 als desktop.
script um den vnc-server zu starten (bei dir als 'testuser'). der server
macht keine ausgabe auf dem bildschirm, d.h. das x-display läuft nur
im speicher.
der vnc-server führt beim starten die datei ~/.vnc/xstartup aus (~/ des
'testusers'), darin wird der window-manager gestartet.
1
cm@puck:~$ cat .vnc/xstartup
2
#!/bin/sh
3
exec ck-launch-session startxfce4
die 'firewall' des servers lässt nur ssh verbindungen zu, also keine
direkten (unverschlüsselten) verbindungen zum vnc-server. d.h. man muss,
um sich mit einem vnc-client zum server zu verbinden, zuerst einen
ssh-tunnel starten, und sich dann über den tunnel verbinden.
script auf clients die sich zum server verbinden wollen (ssh mit
passwordless login):
anpassungen die du machen müsstest:
1. starten des vnc-servers beim systemstart als 'testuser'.
meiner meinung nach am besten in der /etc/rc.local (ungestestet, dein
problem)
1
su - testuser -c '<script zum vnc-server starten>' >/dev/null 2>&1 &
statt /dev/null kannst du auch erstmal ein logfile angeben.
2. starten deiner windows applikation durch autostart-funktion des
window managers.
sollte funktionieren, viel glück.
...DANKE c.m.
Damit wir uns nicht falsch verstehen! Es geht mir darum, dass sobald
mein VPS-Server neugestartet wird bzw. nach einem Ausfall neu hochfährt,
mein Windowsprogramm auch wieder automatisch gestartet wird. Auch OHNE
das ich mich per x2go anmelde. Aktuell habe ich mein Windowsprogram in
die Ubuntu "StartUpApplications" gelegt. Das startet zwar automatisch,
ABER eben erst nach der manuellen Anmeldung mit x2go.
Ich habe also bereits eine SSH Verbindung per X2Go mit eigenem KeyFile
eingerichtet. Das Private Key File habe ich zusätzlich per Passphrase
geschützt. Ausserdem habe ich im ssh config file das Login für root
verboten und auch das login per BN/PW deaktiviert.
Da ich nun also wie gesagt mit X2Go ja bereits meinen Server (auf dem
ubuntu-desktop ist installiert) sehe, frage ich mich, wozu ich nun noch
"vnc" brauche???
Könntest du das kurz erklären?
...ich dachte eigentlich das ich nur noch irgendein script erstellen
muss, wo ich einfach reinschreibe, dass er mir den x-server startet und
natürlich auch das internet und wine bzw. damit auch mein Windows
Programm unter Wine.
Und wenn ich mich dann per X2Go anmelde ist quasi alles bereits offen!
sven schrieb:> Da ich nun also wie gesagt mit X2Go ja bereits meinen Server (auf dem> ubuntu-desktop ist installiert) sehe, frage ich mich, wozu ich nun noch> "vnc" brauche???
brauchst du nicht, der vnc-server war als alternative für x2go gedacht.
wenn du vnc nicht verwenden kannst/willst, musst du dich mit der x2go
doku rumschlagen.
ich werd mir das für mich auch mal anschauen, soll wohl schneller sein
als vnc, und dabei weniger kompliziert als nx. ad hoc dabei weiterhelfen
kann ich allerdings nicht.
X2Go kann ich nur empfehlen. Ich hab auch nx ausprobiert, aber X2Go ist
bei mir in etwa doppelt so schnell!
Nur noch zum Verständnis, X2Go habe ich, damit ich von zuhause aus auf
den Server schauen kann, logisch.
ABER mir geht des darum, das der Server (VPS) stand alone, also selbst
wenn ich mich nicht damit verbinde, nach jedem reboot / start
automatisch meine Wine-Applikation (.exe) startet. Die Frage ist für
mich nur wie?
-vmtl. erst mal eine graph. Oberfläche starten also X und den lightdm???
-dann muss ggf. noch das netzwerk (bzw. internet) aktiviert werden
-und dann muss ggf auch noch WINE gestartet werden?
-und natürlich auch noch meine .exe
Wie geht das??? Gibt es ein Script das ich mal testen kann?