Hallo liebes Forum, ich wollte mir aus einem Raspberry Pi einen digitalen Bilderrahmen bauen. Als Bildbetrachter/Slideshow benutze ich qiv, welches ein gesamtes Verzeichnis samt Unterverzeichnis (falls vorhanden) in einer Slideshow anzeigt. Das funktioniert auch ganz gut, selbst wenn man Bilder löscht. Nur werden mir neue Bilder nicht angezeigt. Ich möchte ebenfalls, dass das ganze ohne angeschlossene Tastatur oder Maus läuft. Also habe ich mir im Netz ein Script gesucht, welches einen Ordner überwacht, bei Änderungen das qiv killt und im Anschluss erneut startet, damit auch Bilder, welche zum Ordner hizugefügt werden angezeigt werden. Jedoch muss ich immer noch auf ESC drücken, dann startet erst das qiv neu. Ich vermute also, dass der Prozess nicht beendet wird. Habe mir die Finger bereits wundgegoogelt und einiges ausprobiert, aber nichts hat geklappt. Hoffe Ihr könnt mir sagen, wo der Fehler liegt. Ausgeführt wird das ganze im LXDE unter dem Standard-Benutzer Pi. Gruß, Olli #! /usr/bin/env bash FILELIST=/tmp/filelist MONITOR_DIR=/slideshow [[ -f ${FILELIST} ]] || ls ${MONITOR_DIR} > ${FILELIST} while : ; do cur_files=$(ls ${MONITOR_DIR}) diff <(cat ${FILELIST}) <(echo $cur_files) || \ { echo "Alert: ${MONITOR_DIR} changed" ; echo $cur_files > ${FILELIST} ; pkill qiv #Hier scheint der Fehler qiv -fsiutmTd 3 /slideshow } echo "Waiting for changes." sleep 5 done
Klappt leider auch nicht. Gerade getestet. Selbes Spiel. Ich muss auf ESC drücken, dann wird der Desktop ca. eine Sekunde angezeigt und erst danach startet die Diashow neu mit den neuen Bildern. Aber von alleine tut der das leider nicht.
Das Skript heisst nicht zufällig qiv und wird von pkill gleich mit erwischt? PS bevor Du noch ganz anderes mit erwischt: pkill hat eine -v Option die NICHT verbose bedeutet sondern auf maximalen Überraschungseffekt ausgelegt ist.
2 Tage habe ich mir die Finger, teilweise bis 6 Uhr morgens wundgegoogelt um auf eine Lösung zu kommen. Konrad S. (maybee) hatte sie. Vielen Lieben Dank. Hat auf Anhieb geklappt.
Und schon wieder ewig gegoogelt aber leider nichts gefunden. Was bedeutet das "&"??? Startet es das Programm dann im Hintergrund? Zumindest habe ich sowas in der Art gelesen...
Olli schrieb: > Was bedeutet das "&"??? Startet es das Programm dann im Hintergrund? So ist es. Wenn du das nicht machst, dann wartet dein Script auf das Ende von qiv, also bis du ESC drückst.
> Was bedeutet das "&"???
1 | If a command is terminated by the control operator &, |
2 | the shell executes the command in the background in a subshell. |
3 | The shell does not wait for the command to finish, and the |
4 | return status is 0. |
Aus: man bash
Olli schrieb: > wieder ewig gegoogelt Falls noch nicht bemerkt, google sucks. Auch das Programm man hat natuerlich seine manpage, man man gibt die Hinweise zum Umgang mit selbigen. oder ein deutschsprachiges howto: http://www.ostc.de/howtos/man-HOWTO.txt -> Textsuche (per "/TEXT..." <RETURN>) eine Moeglichkeit. Normalerweise alles an Board.
> Normalerweise alles an Board.
Spät es war und dunkel auch,
einfach mal in einer aufgerufenen manpage h drücken.
Dann erscheint die Hilfe zur less-syntax.
-----
man man
manpager
..... By default, man uses /usr/bin/less -is.
Ich glaube ich werde mir mal ein gutes Buch über die Linux-Grundlagen besorgen. Danke für eure Hilfe.
Ok, noch zwei Tipps zu Umgang mit man (von modernem Linux-System ausgehend): Die Sektion, zB wenn es passwd(1) und passwd(5) gibt, wählt man mit "man 1 passwd" bzw "man 5 passwd" aus. Suchen kann man in der offenen Manpage mit /Suchbegriff , weitersuchen mit "n" , an Anfang und Ende kommt man mit "g" und "G" .
Ich glaube ich habe was passendes für den Einstieg gefunden. http://openbook.galileocomputing.de/linux/ Da werde ich mich erst mal reinarbeiten. Vielen lieben Dank, an alle die sich dem Problem angenommen haben und mir geholfen haben. Besonderen Dank an maybee für die Lösung des Problems.
@Andy Was verstehst du unter einem "nicht modernen" Linux-System? Ist nicht alles, was ich als aktuelle Version aus dem Netz beziehe modern? Bestehen da Unterschiede, falls ich bspw. mal mit der C- oder Python-Programmierung anfangen möchte? Bisher habe ich nur Bascom (ja, ich weiß) und ASM (weil Bascom eben nicht so toll war) auf AVR programmiert. Ich habe mir heute zum probieren und testen von allem möglichen ein Ubuntu 12.04 LTS auf nem alten PC installiert, da das Raspbian auf dem RPi wohl auf der selben Grundlage aufgebaut sein soll. Reicht das für den Anfang? Gruß, Olli
Olli schrieb: > Linux-System? bash, gcc, etc. ist eigentlich GNU, nicht Linux. http://directory.fsf.org/wiki/GNU Mehr Lektuere unter http://www.gnu.org An deren Konzept hat sich nicht viel geaendert seit 1984, (Warum auch?)
Olli schrieb: > Ubuntu 12.04 LTS Das ist schon OK, wird bis 2017 mit Security-Updates versorgt. Zum Arbeiten mit Linux taugt es allemal.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.