[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: jpg im Vollbild anzeigen



Am Freitag, 25. Mai 2007 schrieb Alex Bleibtreu:
> Allerdings möchte ich nur das Bild  bild.jpg für 5 Minuten anzeigen
> lassen und dann gqview beenden lassen (per kill pid ?)

Aha... Ich hatte es so verstanden, dass Du alle 5 Minuten ein neues Bild 
anzeigen lassen willst... Wenn Du nur ein einziges Mal ein Bild für 5 
Minuten anzeigen lassen willst, und dann soll Schluss sein, dann 
brauchst Du keine Schleife:

gqview -f bild.jpg &
sleep 5m
kill %+

>
> Also z.B.
>
> #!/bin/bash
>
> while true; do
>   for bild in bild.jpg; do
>     gqview -f "$bild" &
>     sleep 5m
>     pidof gqview
>     kill "ergebniss pidof"   ?????

Solch ein Konstrukt hat den Nachteil, dass es schon mehrere gestartete 
gqview-Instanzen geben könnte und pidof dann die PIDs von allen 
liefert.

>     kill %+   <- Das hatte zur folge, da gqview immer wieder neu
> gestartet wurde mit einem anderem .jpg done

Das liegt an der for-Schleife (bzw. wenn die durchgelaufen ist an der 
while-Schleife).

> done 2>/dev/null

Wenn Dir "kill %+" trotzdem suspekt ist, dann:

gqview -f bild.jpg &
pid_von_gqview=$!
sleep 5m
kill $pid_von_gqview

oder kurz:

gqview -f bild.jpg &
sleep 5m
kill $!

> Wie könnte ich denn das mit dem display machen, damit es auch als
> cron-job kommt?

Das ist schwierig, und ich persönlich finde auch, dass das meistens 
keine Aufgabe für cron ist, weil dieser ja erstmal herausfinden müsste, 
welcher User grade X gestartet hat (und ob X überhaupt läuft bzw. 
zweimal läuft...), dann dessen .Xauthority "klauen" (oder die Identität 
dieses Users annehmen, was sicherlich nicht jeder will...) und dann 
noch dessen DISPLAY-Variable ermitteln (wie das gehen könnte, weiß ich 
leider so ad hoc nicht).

Wenn das Script ohnehin nur laufen kann, wenn ein X-Server läuft und 
auch nichts weiter tun muss, als Bilder anzeigen, dann finde ich, dass 
es im Allgemeinen sicherlich sinnvoller ist, das Script beim Start des 
X-Servers durch ein Startup-Script des Users, der X gerade startet, 
mitzustarten.

Viele Grüße von Ole



Reply to: