MPD-Dienst bei Nichtgebrauch beenden?

  • Hallo zusammen,

    ich hatte bisher meinen Raspi lediglich dazu verwendet, um per WOL meinen PC oder mein NAS wecken zu können.
    Während der Feiertage wollte ich ihn endlich zusätzlich als Musikplayer einsetzen. Die bisherige Lösung mit Stick am DVD-Player war mir zu umständlich, da ich immer den Fernseher für die Steuerung brauchte.

    Nun habe ich auf dem Raspi den MPD installiert, einen USB-Stick mit mp3-File gemountet, eine Radioplaylist angelegt,... funktioniert auch alles. Die Playlisten selbst bearbeite ich am PC mit Auremo. Funktioniert wirklich perfekt und mit der UA0053 Soundkarte brauch ich auch den Verstärker nicht mehr so laut zu drehen :thumbs1:

    Zu meiner Frage: Die Steuerung erfolgt prinzipiell über das Hady (S5 mini) mit der App MPDroid (Droid MPD Client lässt sich irgendwie nicht einstellen). Die Musik oder Radio kann ich mittels der Stop-Taste in der App beenden. Macht es Sinn auch den Dienst auf irgendeine Art und Weise zu stoppen bzw. die externe Soundkarte zu "deaktivieren"? Von wegen Leistung und Stromverbrauch, sofern der relevant wäre. Auch, wenn ich vergessen sollte die Wiedergabe zu stoppen braucht der Raspi ja nicht unbedingt unnötig streamen.
    Gibt es da eine Möglichkeit oder einfach Wiedergabe Stop und das wars?

    Danke im Voraus und lG
    Stefan


  • Was willst du denn mit dem Beenden von mpd erreichen? Ich glaube nicht, dass du damit irgendetwas merklich verbesserst.

    Wenn du mpd auf Stopp schaltest wird doch auch nichts mehr gestreamt und mpd hört sogar auf die Soundkarte zu "belegen", das heißt selbst wenn du aus irgendwelchen Gründen den Ton direkt über die Alsasoundkarte (ohne Pulseaudio oder das ohne Pulseaudio standardmäßig zwischengeschaltete dmix-Plugin) wiedergibst, kannst du dann mit anderen Anwendungen auf die Soundkarte zugreifen.
    Auch den Prozessor sollte mpd eigentlich nicht beanspruchen, wenn nichts wiedergegeben wird und es auch nicht gerade dabei ist irgendwelche Dateien zu indizieren. Bliebe höchstens noch der Speicherverbrauch, aber dass der eine wirkliche Rolle spielt wage ich zu bezweiflen.

    Für systemd bringt mpd übrigens eine unit zur Socket-Activation mit (mpd.socket). Damit sollte es also eigentlich möglich sein, dass mpd erst gestartet wird, wenn er auch tatsächlich über das Netzwerk "verlangt" wird. Allerdings ist mir kein Weg bekannt, dass sich mpd bei (längerem) Nichtgebrauch auch wieder beendet.

    Einmal editiert, zuletzt von smutbert (1. Januar 2016 um 22:56)

  • Zitat

    Allerdings ist mir kein Weg bekannt, dass sich mpd bei (längerem) Nichtgebrauch auch wieder beendet.


    das ließe sich doch mit einem Cronjob-1min-Script lösen

    --------beim pi-autostart(rc.local)----

    Code
    wird im Arbeitsspeicher eine Systemvariable [mpddelay=0] deklariert& initialisiert


    --mpdcheck.sh-------------------------

    Code
    maxdelay=15                             //hier Wartezeit in Minuten
    
    
    wenn MPC dudelt 
        mpddelay <-- maxdelay               // neu triggern
    sonst wenn mpddelay > 0
          mpddelay <-- mpddelay - 1       // runterzählen
    sonst wenn mpd-dienst noch läuft    // und mpddelay = 0 ist 
        mpd-dienst stoppen

    da der cronjob "nur" jede Minute aufgerufen wird, kann die Nachlaufzeitgenauigkeit bis zu einer Minute variieren.
    Wäre zu überprüfen ob der mpddienst bei Nichtbenutzung wirklich mehr Resourcen verbraucht als der 1minCronjob.

    cu xbow

  • Hallo,
    danke für Eure Antworten und entschuldigt bitte, dass ich mich jetzt erst melde - war ein paar Tage auf Urlaub :)

    Ich habe das Gefühl, dass der Raspi seit meiner Erweiterung wärmer wird und dadurch unnötig (wahrscheinlich maginal) mehr Leistung braucht. Die Erwärmung kann auch durch die Soundkarte kommen, die ist ja permanent angeschlossen.
    Des weiteren wollte ich ein unnötiges Streamen vermeiden, wenn mal vergessen wird zu Stoppen. Soll ja auch durch Kinder bedient werden können.

    @xbow klingt an sich schon interessant, wenn man mit Linux noch nicht so viel am Hut hat :D
    Dann muss ich den mpd auch per ssh starten, bevor die App sich verbinden kann. sehe ich das richtig?

  • […]
    Dann muss ich den mpd auch per ssh starten, bevor die App sich verbinden kann. sehe ich das richtig?

    Das wäre kein guter Plan und es sollte auch anders gehen, sogar ohne dass du über xbows-Vorschlag hinaus etwas machst. weil die socket-Unit mpd automatisch starten sollte, wenn jemand versucht über das Netzwerk (auch das loopback-Interface) darauf zugreifen will. Du könntest das erst Mal testen, indem du mpd beendest

    Code
    # systemctl stop mpd


    und danach versuchst mit einem mpd-Client darauf zuzugreifen. Vielleicht benötigt es 2 oder 3 Verbindungsversuche aber danach sollte mpd wieder laufen.

    Wenn das funktioniert genügt es, mit einem Skript wie xbow es vorgeschlagen hat, mpd zu stoppen nachdem eine bestimmte Zeit der Inaktivität abgelaufen ist.
    Allerdings bezweifle ich nach wie vor den Nutzen und auch die xbows Herangehensweise hat ihre Tücken: So würde mpd dann gnadenlos beendet, wenn er damit beschäftigt ist neue Musikdateien zu indizieren oder während man in einem mpd-Client gemütlich die Alben durchblättert, wenn nicht gleichzeitig etwas abgespielt wird.

  • gute Einwand von smutbert, an den Datenbankzugriff beim indizieren oder browsen habe ich garnicht gedacht.
    Du schreibst

    Zitat

    ...unnötiges Streamen vermeiden, wenn mal vergessen wird zu Stoppen...

    Woher soll denn der Pi wissen, dass du es vergessen hast - der "denkt" du willst auch weiter Musik hören.

    • Indietz: dafür ist evtl. das Um-/Abschalten am Verstärkers. Ob das den Aufwand wert ist die Info( zb. Spannung/Signal am Verstärker abgreifen -> Pegelanpasssung -> über GPIO-pins einlesen) einzufangen musst du wissen.
    • Indietz schließen der App. Auch nicht ganz einfach da müsstest du eine Starter/ÜberwachungsApp für MPDroid programmieren, die erkennt wann MPDroid wieder aus/im Hintergrund ist (ggf. wenn gewünscht MPDroid beendet) und den "systemctl stop mpd"-Befehl an den Pi sendet. - hier bin ich dann raus :stumm:


    ich würde da nichts machen, irgendwann gewöhnt man/kind sich daran stop zu drücken wenn man nicht ein paar Lieder aus der Playlist verpassen will ;)

    cu xbow

    Einmal editiert, zuletzt von xbow (7. Januar 2016 um 11:48)

Jetzt mitmachen!

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