Minidlna Autostart geht natürlich nicht :-(

  • Hallo,


    ich weiß nicht, warum ich dieses ewige Geschiss mit dem Autostart habe. Pyload wollte erst nicht, das konnte ich aber richten. OpenCloud wollte nicht, konnte ich richten...


    Jetzt bei Minidlna natürlich das selbe....


    Ist es bei wheezy normal, dass das mit dem Autostart immer so rumzickt ? Von Linux habe ich nicht soviel Ahnung, aber auf anderen Systemen klappt der Autostart....


    Könnt Ihr mir da evtl. helfen ?


    Habe die minidlna Anleitung aus dem Forum verwendet und Minidlna läuft auch super, wenn ich ihn manuall mit "/etc/init.d/minidlna start" starte.


    An den Rechten kann es eigentlich nicht liegen, weil die db die erstellt wird dem User minidlna:minidlna gehört und das logfile dem selben User und Gruppe gehört.


    Bei mir liegen die Filme auf einer externen ext4 Platte und die db ist (gewollt) in /tmp.
    Der Autostart funktioniert aber auch nicht, wenn ich die db im default Ordner speicherer und dort die Rechte laut Tutorial anpasse.


    Meine minidlna.conf sieht so aus




    das startscript in /etc/init.d/minidlna



    Und das default script in /etc/default/minidlna


  • Ja,


    mit dem Befehl


    "update-rc.d minidlna defaults"


    Dann kommt auch ohne Fehlermeldung die Ausgabe "Updating boot sequencing....."

  • Hi chris,


    steht was zu Deinem Fehler im syslog?
    hast Du mal überprüft keine relativen sondern nur absolute Pfade zu verwenden und ggf. relative Angaben entsprechend geändert?
    Du schreibst:


    Quote


    ...
    An den Rechten kann es eigentlich nicht liegen
    ...


    sehr vage und eine unzulässige Aussage im Rahmen einer Fehlersuche.
    Entweder es liegt daran oder eben nicht ... eigentlich nicht gibts nicht ;)
    Also ... ist sichergestellt, dass es an den Rechten liegt resp. nicht liegt?


    cheers,
    -ds-

  • An den Rechten kann es nicht liegen, weil wenn ich minidlna mit "/etc/init.d/minidlna start" starte, läuft der Server ohne Probleme unter dem user minidlna:minidlna.


    In Syslog taucht leider gar nichts auf, der minidlna wird gar nicht gestartet, damit er einen Fehler loggen könnte. Auch bekomme ich keine Fehler die minidlna betreffen, wenn ich syslog / daemon.log / dmesg und messages durchsuche.


    Es scheint, als würde das startscript gar nicht ausgeführt....

  • Ich habe immer den absoluten Pfad angegeben. (Also immer ausgehend vom Stammverzeichnis /)


    z.B. /var/log für das Logfile
    und /tmp/ für die Datenbank



    Seltsamerweise wird auch das Logfile in /var/log vom user minidlna:minidlna erstellt, wenn ich reboote.
    Aber die datei ist leer. Wenn ich sie lösche und den Raspberry neu starte, wird sie wieder problemlos erstellt, nur ist sie eben leer.


    Die Permissions der Ordner sehen so aus :


    drwxrwxrwt 4 root root /tmp


    -rw-r--r-- 1 minidlna minidlna /tmp/files.db


    (Die DB wird so erstellt, wenn ich minidlna mit "/etc/init.d/minidlna start" starte. (Den Befehl führe ich als root aus)


    -rw-r--r-- 1 minidlna minidlna /var/log/minidlna.log


    Das Logfile wird beim booten automatisch von minidlna erstellt. Es scheint, als würde das startscript doch ausgeführt.


    drwxr-sr-x 3 christian sambashare /media/usb1/samba/downloads/Filme


    Hier sind die Filme auf meiner externen ext4 Platte. Der Ordner ist per Samba freigegeben, damit ich Filme vom PC aus reinkopieren kann.


    Würde Minidlna beim booten hier nicht zugreifen können, weil evtl Rechteprobleme vorliegen, dann müsste das doch im Logfile von minidlna auftauchen, oder ? Das Logfile wird beim starten ja ohne mucken erstellt.


    Ich blicke da echt gar nicht mehr durch :s

  • Erstmal Vielen Dank, dass Du Dich meinem Problem annimmst :D Alleine würde ich das wohl nie hinbekommen.


    Habe das "set -x" direkt unter "unset user" gesetzt.


    Leider bekomme ich die Ausgabe von set -x in keinem Logfile zu sehen, wenn der PI startet.
    Habe syslog,dmesg,daemon.log und messages durchsucht.


    Wenn ich minidlna wieder auf der cmdline von hand per "/etc/init.d/minidlna start" starte, läuft der DLNA Server ohne Probleme an und ich bekomme folgende Ausgabe.




    Das wird uns aber wohl nicht viel bringen, oder ? Weil so der Minidlna ohne Mucken gestartet wird.

  • Ich nehme an (mein Pi läuft leider nicht) der normale runlevel beim Pi ist 2.


    Tipp mal ein "sudo runlevel" dann kommt sowas wie "N 2" ja?


    Jetzt geht mal in /etc/rc2.d (die 2 ist der runlevel von eben).


    Dort müsstest Du jetzt eine Datei mit dem Namen "S<irgendeine Zahl>minidlna" finden. Ja?


    Dann mach mal ein "ls -l <diese Datei>". Das müsste einen Output geben wie "... -> ../init.d/minidlna".


    Wenn das nicht so ist, dann ist was schiefgegangen.


    Check' das mal dann sehen wir weiter.

  • Der Runlevel ist N2


    und wenn ich den Symlink in rc2.d überprüfe, dann zeigt der auch auf das script in init.d.


    Der Symlink ist grün, vorhanden und ausführbar.


    Ich habe jetzt mal gleich nach dem reboot "/etc/init.d/minidlna status" eingegeben


    Dort bekomme durch das "set -x" ein paar mehr Ausgaben und auch ein paar "FAIL"


    Evtl liegt hier der Fehler.


    EDIT: Das ist nicht der Fehler, das FAIL kommt, wenn minidlna nicht läuft. Nach einem "/etc/init.d/minidlna start" und einem erneuten "/etc/init.d/minidlna status" kommt nichts mehr mit FAIL.


  • Diese Thema ist zwar schon älter, aber da ich es hinbekommen habe, hilft es vielleicht anderen auch :)



    Das Problem lag daran, dass der PI seine IP per DHCP bekommt.
    Wenn man die IP in /etc/network/interfaces fest vergibt, dann startet minidlna automatisch.



    Problem gelöst :)

  • Mich hat kürzlich das gleiche Problem beschäftigt. Allerdings sind statische IPs keine Option für mich, da der RasPi auch mal in einem anderen Netzwerk laufen muss.


    Interessanterweise startete minidlna einwandfrei mit jedem Warmstart, jedoch nicht während eines Kaltstarts.


    Ich habe auf ein DHCP-bedingtes Problem getippt, das vielleicht mit dem längeren Handshaking wegen Ablauf der Lease Time zusammenhängt.
    Daraufhin habe ich nach Ermittelung des Runlevels (=2) minidlna an das Ende der Liste in rc2.d geschoben. Leider ohne sichtbare Auswirkung.


    Die nächste Idee war, durch einen Sleep 30 in /etc/init.d/minidlna auf den erfolgreichen Abschluss der Adressanfrage zu warten.
    Das hat schonmal funktioniert.


    Beim Googlen fand ich dann das hier.
    Wenn man /etc/init.d/minidlna um die folgenden Zeilen ergänzt, z.B. gleich am Anfang nach END INIT INFO, wird auf die erfolgreiche Vergabe einer IP-Adresse
    gewartet, und erst dann mit dem Start des Daemon begonnen:


    Code
    ip_row=`ifconfig | grep addr | grep 192`
    while [ ! -n "$ip_row" ]
    do
      ip_row=`ifconfig | grep addr | grep 192`
      sleep 2
    done


    Zugegeben, es ist ein Script-Hack. Mangels besserer Informationen wüsste ich aber nicht, wie man anders einen 'sauberen' Start erreichen kann.
    Vielleicht hat jemand noch Ideen für eine elegantere Lösung?


    Mittels Debug-Output des Scripts konnte ich übrigens feststellen, dass der RasPi in manchen Fällen von der FritzBox erst nach 16 Sekunden eine Adresse erhalten hat!