Skript läuft nicht in der rc.local

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich habe ein Proble m, dass mein Skript teilweise nicht in der rc.local läuft.

    Hier ist das SKript, welches in einer Endlosschleiße einen GPIO-Eingang abfragt und dann in eine Aktion startet.
    Über die rc.local gestartet klappt die snapshot-Erstellung mit curl wunderbar. Ebenso der Syslog-Log Eintrag.
    ABER: die Mail wird nicht versendet :(
    Starte ich das Skript aber mittels sudo, dann wird die Mail einwandfrei versendet.
    Was mache ich hier falsch?

    Skript:

    Auszug meiner rc.local:

    Code
    # GPIO auf Klingelsignal testen (Schleife))
    /home/pi/mail_foto.sh&

    Einmal editiert, zuletzt von duffy6 (10. März 2014 um 12:01)

  • mutt selbst kann keine Mails verschicken...

    mutt legt die Konfigurationsdatei normalerweise ins Homedir des Benutzers ab, also ~/.muttrc bzw teilweise auch seperate Dateien im Verzeichnis ~/.mutt/ .. Um sicher zu gehen das er die auch nutzt solltest du die Konfiguration direkt beim Aufruf des Befehls mit angeben: mutt -F /root/.muttrc


    Hast du denn mal überprüft ob das Script nach reboot und wenn es eigentlich ausgelöst werden sollte, überhaupt noch läuft?
    Ich vermute nämlich mal nicht, aufgrund der "while true" Schleife, die beendet sich nämlich wenn nicht mehr true, also ein Fehler auftritt

    Trag das Script also mal so ein das Ausgaben und Fehler in eine Logdatei geschrieben werden, du dann rebootest und den GPIO4 auslöst:

    Hier der Eintrag:

    Code
    /home/pi/mail_foto.sh >/tmp/log 2>&1 &

    Und wie gesagt, prüfen ob das Script überhaupt noch läuft: ps aux und nach dem Script namen suchen.. Oder: ps aux | grep mail_foto.sh


    Wenn das nicht der Fall ist, dann änder die "while true" so ab dass es egal is ob da nen Fehler auftritt: while :; do


    PS: deine find Befehle sind ziemlich belastend für die SD, die verträgt nicht unendlich viele Schreib-/Lese-Vorgänge. Die solltest du also noch optimieren sonst stirbt dir die SD ziemlich schnell weg

  • Ich würd dir raten das Script stattdessen in die crontab des Benutzers einzutragen:

    Code
    @reboot  /home/pi/mail_foto.sh >/tmp/log 2>&1

    (siehe dazu Forumsuche nach: crontab)

    Ansonsten das Verzeichnis /send anlegen ;)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!