Seite 1 von 1
firefox auf Server öffnen
Verfasst: Montag 1. Dezember 2014, 11:53
von erdmulch
Hallo zusammen,
Ich würde gerne in meiner Wohnung einen Server betreiben und mit diesem Fernsehsendungen streamen was auch schon funktioniert. Nun würde ich aber gerne mit djano den firefox auf dem server starten und mit Hilfe eines Beamers den Film an die wand provozieren.
Sprich ich drück einen Button auf meiner Website (client) und auf dem server öffnet sich der Firefox. Ist sowas möglich? Vielen Dank im voraus
Re: firefox auf Server öffnen
Verfasst: Montag 1. Dezember 2014, 11:55
von BlackJack
@erdmulch: Ja das ist möglich.
Re: firefox auf Server öffnen
Verfasst: Montag 1. Dezember 2014, 12:16
von erdmulch
Und wie?
Re: firefox auf Server öffnen
Verfasst: Montag 1. Dezember 2014, 12:31
von BlackJack
@erdmulch: Grundsätzlich mit dem `subprocess`-Modul. Dann ist nur noch die Frage wie Django ausgeführt wird, also ob der Prozess aus dem man das startet dauerhaft läuft, oder nicht. Wenn nicht, oder wenn man sich auf das aktuelle Setup nicht verlassen kann oder will, müsste man wohl einen extra Server schreiben der auf Anweisung von der Webanwendung wartet und dann Firefox startet.
Re: firefox auf Server öffnen
Verfasst: Freitag 5. Dezember 2014, 22:36
von erdmulch
Hallo nochmals,
ich habe nun versucht den Firefox auf dem Server auszuführen
siehe Code
Code: Alles auswählen
def firefox_streaming(request):
subprocess.call(["firefox"])
return render(request,'firefox_streaming/index.html')
auf der Konsole erscheint nun die Fehlermeldung:
Error: no display specified
Ich hab da auch schon gegoogelt, ich will nur, dass auf dem Server der Firefox geöffnet wird.
Ich will keinen Xserver oder ähnliches einrichten.
Kann mir jemand sagen was ich machen muss?
vielen Dank
Re: firefox auf Server öffnen
Verfasst: Freitag 5. Dezember 2014, 22:59
von BlackJack
@erdmulch: Wie soll denn der Firefox ohne X funktionieren? Firefox ist ein GUI-Programm, das braucht halt eine grafische Umgebung.
Re: firefox auf Server öffnen
Verfasst: Freitag 5. Dezember 2014, 23:31
von erdmulch
ja, aber auf dem Server läuft ja bereits eine GUI. Da läuft Ubuntu 12.04
Re: firefox auf Server öffnen
Verfasst: Samstag 6. Dezember 2014, 00:19
von BlackJack
@erdmulch: Falls X tatsächlich läuft, dann fehlt wahrscheinlich die DISPLAY-Umgebungsvariable bei dem Prozess in dem die Webanwendung läuft.
Re: firefox auf Server öffnen
Verfasst: Dienstag 13. Januar 2015, 14:03
von taake
@erdmulch:
Da du schriebst dass das Streaming breits funktioniert hast du mit Sicherheit schon ein X installiert, sonst würdest du nur bis zur Login prompt in der Shell kommen.
Das ganze sollte sich mit einem
export DISPLAY=:0 beheben lassen
versuch mal den subprocess.call anzupassen
der
; ist dafür zuständig das firefox startet selbst wenn der export fehlschlägt. (was er allerdings nie tun dürfte)
das
& am Ende sorgt dafür das firefox als eigenständiger Process startet und nicht stirbt wenn django beendet wird
Ist allerdings nicht zwingend erforderlich.
ggf brauchst du dann noch ein "killall firefox" button um firefox dann wieder los zu werden
Das ist allerdings auch eher quick & dirty - ggf sollte man das ganze noch etwas schön machen wenn es so funktioniert.
Re: firefox auf Server öffnen
Verfasst: Dienstag 13. Januar 2015, 14:09
von BlackJack
Um Umgebungsvariablen zu setzen für den Prozess den man da startet gibt es ein Schlüsselwortargument bei `Popen`.
Re: firefox auf Server öffnen
Verfasst: Dienstag 13. Januar 2015, 15:21
von taake
Da sagst du was, in die docs gucken hilft
https://docs.python.org/2/library/subpr ... cess.Popen
und wieder was gelernt, habs zwar noch nie gebraucht weil sich dafür bash meist eher anbietet, aber irgendwann brauch ich es vielleicht doch mal.