Bash-Script Problem beim Beenden von qiv

Gast #3597476
Lesenswert?

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
Gast #3597512
Lesenswert?

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.
Gast #3599905
Lesenswert?

> 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
Gast #3599916
Lesenswert?

> 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.
#3600116
Lesenswert?

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" .
Gast #3601409
Lesenswert?

@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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren