autom. Daten-Update, autom. Beenden?
autom. Daten-Update, autom. Beenden?
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
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
Re: autom. Daten-Update, autom. Beenden?
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.
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...
Re: autom. Daten-Update, autom. Beenden?
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.
Biete selber TV-Daten an / Provide TV data yourself • Film-/Serienbeschreibungen → https://www.omdb.org
Re: autom. Daten-Update, autom. Beenden?
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.
Kriegt man das noch irgendwie hin?
Gruß, Michael
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.
Gruß, Michael
Re: autom. Daten-Update, autom. Beenden?
Wenn du der Kommandozeile ein
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
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
Unterstütze die Weiterentwicklung von TV-Browser
Re: autom. Daten-Update, autom. Beenden?
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
Unterstütze die Weiterentwicklung von TV-Browser
Re: autom. Daten-Update, autom. Beenden?
Ah, danke, das hört sich gut an.
Als $DISPLAY habe ich
Code: Alles auswählen
:10.0
Code: Alles auswählen
DISPLAY=:10.0
/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."
Gruß, Michael
Re: autom. Daten-Update, autom. Beenden?
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.
Re: autom. Daten-Update, autom. Beenden?
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
Unterstütze die Weiterentwicklung von TV-Browser
Re: autom. Daten-Update, autom. Beenden?
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.
Gruß, Michael
Re: autom. Daten-Update, autom. Beenden?
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
Unterstütze die Weiterentwicklung von TV-Browser
Re: autom. Daten-Update, autom. Beenden?
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.
Code: Alles auswählen
echo -n "kf_alt+f4" >/dev/udp/localhost/27062
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 "$@"
Gruß, Michael
Re: autom. Daten-Update, autom. Beenden?
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.
Gruß, Michael
Re: autom. Daten-Update, autom. Beenden?
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
Unterstütze die Weiterentwicklung von TV-Browser
Re: autom. Daten-Update, autom. Beenden?
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