autom. Daten-Update, autom. Beenden?

Bei Problemen mit der Bedienung von TV-Browser, bitte hier posten.
halgrunt
Junior Member
Beiträge: 14
Registriert: 16 Nov 2015, 16:03

autom. Daten-Update, autom. Beenden?

Beitrag von halgrunt »

Moinsens!

TVB aktualisiert beim Start automatisch alle Daten, wie eingestellt. Gibt es jetzt aber eine Möglichkeit, TVB nach Ende des Updates auch wieder automatisch zu beenden?

Hintergrund: TVB läuft u.a. auf einem Linux-Server und hat dort eigentlich nur die Aufgabe, die Daten aktuell zu halten. Er soll aber nicht dauerhaft laufen. Die tvdata werden dann von 2, 3 Win10-Rechner benutzt, denen ich gerne immer die aktuellen Daten präsentieren würde, ohne dass diese ein Update machen müssen.

Auf dem Linux-Rechner würde ich dann gerne z.B. nachts um 3 Uhr TVB per cron starten, die Daten aktualisieren lassen und dann TVB wieder beenden. Läßt sich das bewerkstelligen?

TVB soll dabei auf dem Linux-Rechner auch "regulär" benutzbar bleiben. Manchmal sitze ich auch an dem und bastel mit Fritzing oder Python.

Gruß, Michael
Benutzeravatar
Agrivaine
Moderator
Beiträge: 810
Registriert: 21 Nov 2007, 14:39
Kontaktdaten:

Re: autom. Daten-Update, autom. Beenden?

Beitrag von Agrivaine »

Hi,
da würde sich IMO timeout anbieten. Wenn er bspw. 2-3 Minuten für ein Update benötigt, startest du ihn mittels "timeout" in deinem cronjob und lässt ihn darüber nach zB. 10 Minuten automatisch beenden.
Gestern standen wir vor dem Abgrund; heute sind wir bereits einen Schritt weiter...
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Re: autom. Daten-Update, autom. Beenden?

Beitrag von Jo »

Die meisten Sender sollten fast immer um 3 Uhr aktuelle Daten haben, aber um ganz sicher zu sein nimm was späteres, wenn die Zeit bei dir nicht wichtig ist.
halgrunt
Junior Member
Beiträge: 14
Registriert: 16 Nov 2015, 16:03

Re: autom. Daten-Update, autom. Beenden?

Beitrag von halgrunt »

Danke euch für die Antworten. An "timeout" hätte ich jetzt gar nicht gedacht, hab es bislang noch nie benutzt. Das funktioniert grundsätzlich. Genial.

Ich war eigentlich auf dem Trichter, möglichst kein "kill" o.ä. zu benutzen, aber ach, egal... ;-) (Ich hatte auf einen Commandline-Parameter /quit o.s.ä. gehofft.)

Die Uhrzeit an sich ist tatsächlich unkritisch, kann auch um 5 sein oder so. Hauptsache über Nacht.

Jetzt hab ich nur das Problem, dass tvbrowser.sh abbricht, weil (über cron) kein Display verfügbar ist.

Code: Alles auswählen

Starting TV-Browser...
[ . . . ]
java.lang.NullPointerException
        at tvbrowser/tvbrowser.TVBrowser.main(TVBrowser.java:369)
[ . . . ]
21:07:02 SCHWERWIEGEND: UNCAUGHT EXCEPTION IN THREAD 'main'
java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at java.desktop/java.awt.SplashScreen.getSplashScreen(SplashScreen.java:127)
        at tvbrowser/tvbrowser.ui.splashscreen.SplashScreen.<init>(SplashScreen.java:74)
        at tvbrowser/tvbrowser.TVBrowser.main(TVBrowser.java:562)
TV-Browser TERMINATED.
Kriegt man das noch irgendwie hin?

Gruß, Michael
ds10
Site Admin
Beiträge: 19101
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: autom. Daten-Update, autom. Beenden?

Beitrag von ds10 »

Wenn du der Kommandozeile ein DISPLAY=:0 (Leerzeichen nach der Nummer beachten) voran stellst, wird das Programm auf dem Display mit dieser Nummer gestartet. Wie deine Display-Nummer aussieht lässt sich per echo $DISPLAY im Terminal herausfinden.

EDIT: Um TV-Browser korrekt zu beenden kannst du dir das Plugin TV-BrowserNetControl (tvb://show/pluginUpdate=TV-BrowserNetControl;select) installieren. In den Einstellungen des Plugins (tvb://show/settings=java.tvbnetcontrol.TvbNetControl) findest du dann die Portnummer an die Befehle zur Fernsteuerung gesendet werden können. Wenn der Fenstermanager mitspielt (gerade mit Mate getestet und hat dort nicht funktioniert, unter Unity geht es) kann dann zum Beenden von TV-Browser auf der Konsole echo -n "kf_alt+f4" >/dev/udp/localhost/PORTNUMMER aufgerufen werden.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
ds10
Site Admin
Beiträge: 19101
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: autom. Daten-Update, autom. Beenden?

Beitrag von ds10 »

Ich habe NetControl etwas geändert, so dass beim Senden von kf_alt+f4 der Fenstermanager kein Problem mehr darstellt und TV-Browser auf jeden Fall beendet wird, wenn der Befehl empfangen wurde.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
halgrunt
Junior Member
Beiträge: 14
Registriert: 16 Nov 2015, 16:03

Re: autom. Daten-Update, autom. Beenden?

Beitrag von halgrunt »

ds10 hat geschrieben: 03 Jun 2022, 23:52 Wenn du der Kommandozeile ein DISPLAY=:0 (Leerzeichen nach der Nummer beachten) voran stellst, wird das Programm auf dem Display mit dieser Nummer gestartet. Wie deine Display-Nummer aussieht lässt sich per echo $DISPLAY im Terminal herausfinden.
Ah, danke, das hört sich gut an.

Als $DISPLAY habe ich

Code: Alles auswählen

:10.0
Aber wo soll ich dann

Code: Alles auswählen

DISPLAY=:10.0
unterbringen? In eine der letzten Zeilen von
/usr/share/tvbrowser/tvbrowser.sh

Code: Alles auswählen

echo $MSG0

cd ${PROGRAM_DIR}

echo "${JAVA_PROGRAM_DIR}java -Xms16m -Xmx1G --module-path="lib:tvbrowser.jar" -Djava.library.path=\"${PROGRAM_DIR}\" -sp>
${JAVA_PROGRAM_DIR}java -Xms16m -Xmx1G --module-path="lib:tvbrowser.jar" -Djava.library.path="${PROGRAM_DIR}" -splash:img>
# ensure disk cache is writte to drive
sync
echo "TV-Browser TERMINATED."
vielleicht? Vor das --module... oder so?

Gruß, Michael
halgrunt
Junior Member
Beiträge: 14
Registriert: 16 Nov 2015, 16:03

Re: autom. Daten-Update, autom. Beenden?

Beitrag von halgrunt »

ds10 hat geschrieben: 04 Jun 2022, 18:40 Ich habe NetControl etwas geändert, so dass beim Senden von kf_alt+f4 der Fenstermanager kein Problem mehr darstellt und TV-Browser auf jeden Fall beendet wird, wenn der Befehl empfangen wurde.
Boah, klasse! Das ist mir bedeutend lieber, als kill und Konsorten. Das (Plugin) schaue ich mir doch sehr gerne mal an.

Gruß, Michael

Edit: Und ja, ausprobiert und funktionuckelt! Sehr, sehr schön!
Zuletzt geändert von halgrunt am 04 Jun 2022, 23:56, insgesamt 1-mal geändert.
ds10
Site Admin
Beiträge: 19101
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: autom. Daten-Update, autom. Beenden?

Beitrag von ds10 »

Das DISPLAY=:10.0 muss ganz an den Anfang der Befehlszeile, also DISPLAY=:10.0 ${JAVA_PROGRAM_DIR}java usw.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
halgrunt
Junior Member
Beiträge: 14
Registriert: 16 Nov 2015, 16:03

Re: autom. Daten-Update, autom. Beenden?

Beitrag von halgrunt »

ds10 hat geschrieben: 04 Jun 2022, 23:53 Das DISPLAY=:10.0 muss ganz an den Anfang der Befehlszeile, also DISPLAY=:10.0 ${JAVA_PROGRAM_DIR}java usw.
Hmmm...

Code: Alles auswählen

DISPLAY=:10.0 java -Xms16m -Xmx1G --module-path=lib:tvbrowser.jar -Djava.library.path="/usr/share/tvbrowser" -splash:imgs/splash.png -Dpropertiesfile=linux.properties -m tvbrowser/tvbrowser.TVBrowser ''
[ . . . ]
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':10.0' as the value of the DISPLAY variable.
Geht das jetzt nur noch in der "cron" Variante, aber nicht mehr "normal"? Mit dem Icon vom Desktop oder aus einem Terminal mittels "tvbrowser" startet es auf alle Fälle nicht mehr. Mit dem Icon sehe ich noch kurz den splash.

Gruß, Michael
ds10
Site Admin
Beiträge: 19101
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: autom. Daten-Update, autom. Beenden?

Beitrag von ds10 »

Ist vielleicht schon ein bisschen spät, du musst genau hinsehen, die Zeile muss mit DISPLAY=:10.0 ${JAVA_PROGRAM_DIR}java beginnen, um erst einmal sicher zu stellen, dass das gefundene Java auch genutzt wird und nicht irgend eine andere Version. Möglicherweise ist die DISPLAY-Nummer auch nicht korrekt, versuche es zuerst mit dem Standardwert DISPLAY=:0. TV-Browser muss ganz normal starten, egal von wo aus du den aufrufst. Wenn du nur einen Monitor verwendest, erscheint mir :10.0 als Wert auch eher merkwürdig.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
halgrunt
Junior Member
Beiträge: 14
Registriert: 16 Nov 2015, 16:03

Re: autom. Daten-Update, autom. Beenden?

Beitrag von halgrunt »

ds10 hat geschrieben: 05 Jun 2022, 00:14Wenn du nur einen Monitor verwendest, erscheint mir :10.0 als Wert auch eher merkwürdig.
Ne, 2 Monitore sind schon dran. Ich hab das jetzt erstmal wieder rausgenommen und ein "echo $DISPLAY" vor dem eigentlichen Start von java eingefügt:

Code: Alles auswählen

miriki@lxdeb1130:~$ tvbrowser
Starting TV-Browser...
Java exec found in PATH. Verifying...
Suitable java version found [java = 11.0.15 2022-04-19]
Configuring environment...
Loading TV-Browser:
:10.0
java -Xms16m -Xmx1G --module-path=lib:tvbrowser.jar -Djava.library.path="/usr/share/tvbrowser" -splash:imgs/splash.png -Dpropertiesfile=linux.properties -m tvbrowser/tvbrowser.TVBrowser ''
command line options:
    -minimized      The main window will be minimized after start up
    -nostartscreen  No start screen during start up
    -fullscreen     Start in fullscreen-mode
    -ignorejvm      Don't check for Sun Java
    -safemode       Don't load Plugins

09:10:17 INFORMATION: Using settings from file /home/miriki/.config/tvbrowser/4.2.6/settings.prop
java.net.SocketException: Socket closed
        at java.base/java.net.PlainDatagramSocketImpl.receive0(Native Method)
        at java.base/java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:200)
        at java.base/java.net.DatagramSocket.receive(DatagramSocket.java:814)
        at tvbnetcontrol.TvbNetControl$2.run(TvbNetControl.java:143)
TV-Browser TERMINATED.
Man sieht also hier auch wieder die :10.0 ausgegeben. Und des NetControl hat TVB auch sauber mit

Code: Alles auswählen

echo -n "kf_alt+f4" >/dev/udp/localhost/27062
aus einem 2. Term beendet.

Jetzt hab ich's mit ebendiesem :10.0 wieder rein genommen:

Code: Alles auswählen

echo $DISPLAY
echo "DISPLAY=:10.0 ${JAVA_PROGRAM_DIR}java -Xms16m -Xmx1G --module-path="lib:tvbrowser.jar" -Djava.library.path=\"${PROGRAM_DIR}\" -splash:imgs/splash.png -Dpropertiesfile=linux.properties -m tvbrowser/tvbrowser.TVBrowser '$@'"
DISPLAY=:10.0 ${JAVA_PROGRAM_DIR}java -Xms16m -Xmx1G --module-path="lib:tvbrowser.jar" -Djava.library.path="${PROGRAM_DIR}" -splash:imgs/splash.png -Dpropertiesfile=linux.properties -m tvbrowser/tvbrowser.TVBrowser "$@"
... und jetzt geht's!

Gruß, Michael
halgrunt
Junior Member
Beiträge: 14
Registriert: 16 Nov 2015, 16:03

Re: autom. Daten-Update, autom. Beenden?

Beitrag von halgrunt »

halgrunt hat geschrieben: 05 Jun 2022, 09:23 ... und jetzt geht's!
Letztendlich wohl leider... zu früh gefreut.

Es scheint, dass ich auch mit der DISPLAY-Angabe das Ding nicht per cron gestartet kriege, auch wenn die ganze Zeit ein Benutzer im KDE angemeldet ist:

Code: Alles auswählen

Starting TV-Browser...
[ . . . ]
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':10.0' as the value of the DISPLAY variable.
        at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        [ . . . ]
        at tvbrowser/tvbrowser.TVBrowser.<clinit>(TVBrowser.java:269)
TV-Browser TERMINATED.
Wie gesagt: "und jetzt geht's!" bezog sich auf das Script zum Start des TVB. Das konnte ich in einem Term aufrufen und bekam keine Fehler. Aber der cron-Job will leider nicht und ich hab auch noch nichts gefunden, daran was zu ändern. Also falls hier noch jemand eine Idee hat...

Gruß, Michael
ds10
Site Admin
Beiträge: 19101
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: autom. Daten-Update, autom. Beenden?

Beitrag von ds10 »

Welches cron benutzt du denn? Das globale oder das nutzerspezifische?
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
halgrunt
Junior Member
Beiträge: 14
Registriert: 16 Nov 2015, 16:03

Re: autom. Daten-Update, autom. Beenden?

Beitrag von halgrunt »

ds10 hat geschrieben: 08 Jun 2022, 09:30 Das globale oder das nutzerspezifische?
Hmmm... Da sagst Du was... Musste ich erstmal gucken, weil das Log in /home/miriki liegt.

Ich hatte es mal in der root-crontab, ging nicht. Dann hatte ich es in der crontab von miriki. Das ist auch der User, der mit autologin an der Kiste ist. Da funktionierte aber auch irgendwas nicht, also hatte ich es wieder zurück in der root versucht. Die hat aber nach wie vor ein > und 2>&1 auf das home von miriki. Ich versuche es nochmal in der miriki-crontab.

Gruß, Michael
Antworten