Hallo zusammen,
nach einer Neuinstallation der letzten LTS-Version habe ich ein kleines Problem mit MPD. Auch nach mehreren Tagen und stundenlangem Lesen, Testen & Ausprobieren habe ich hierfür leider noch keine Lösung gefunden. Ich würde MPD gerne in Verbindung mit ncmpcpp & Cantata auf userbasis, also nach Möglichkeit nicht systemweit nutzen. Das funktioniert soweit auch wunderbar und ein
systemctl --user enable mpd systemctl --user start mpd
funktionieren sofort perfekt. Keine Fehlermeldungen - ncmpcpp und Cantata tun sofort wofür sie gedacht sind. Nun das Problem: Beim Einschalten bzw. einem Neustart des Rechners funktioniert der automatische Neustart von mpd nicht mehr. Ein systemctl --user status mpd liefert dann folgendes:
● mpd.service - Music Player Daemon Loaded: loaded (/usr/lib/systemd/user/mpd.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2020-06-22 12:54:46 CEST; 1min 33s ago TriggeredBy: ● mpd.socket Docs: man:mpd(1) man:mpd.conf(5) file:///usr/share/doc/mpd/html/user.html Process: 2176 ExecStart=/usr/bin/mpd --no-daemon (code=exited, status=1/FAILURE) Main PID: 2176 (code=exited, status=1/FAILURE) Jun 22 12:54:45 ubuntu systemd[2169]: Starting Music Player Daemon... Jun 22 12:54:45 ubuntu mpd[2176]: Jun 22 12:54 : exception: Failed to bind to '127.0.0.1:6600' Jun 22 12:54:45 ubuntu mpd[2176]: Jun 22 12:54 : exception: nested: Failed to bind socket: Address already in use Jun 22 12:54:46 ubuntu systemd[2169]: mpd.service: Main process exited, code=exited, status=1/FAILURE Jun 22 12:54:46 ubuntu systemd[2169]: mpd.service: Failed with result 'exit-code'.
Starte ich dann mpd via systemctl --user start mpd funktioniert sofort wieder alles perfekt. Nur der autostart von funktioniert zur Zeit aus mir erfindlichen Gründen nicht. Die Fehlermeldung lässt auf einen bereits laufenden MPD schließen, das scheint mir jedoch nicht der Fall zu sein. Habe es auch auf die "klassische Art" mit einer .desktop-Datei in ~/.config/autostart versucht und mpd via systemctl auf disabled gesetzt.
[Desktop Entry] Type=Application Name=Music Player Daemon Comment=start MPD as user when you log in Exec=/usr/bin/mpd --no-daemon StartupNotify=false Terminal=false Hidden=true
Genau dasselbe Spiel. Manuell gestartet alles ok. Keine Fehlermeldungen, aber nach einem Neustart erneut reproduzierbar kein automatischer Start von MPD. Gleiches Fehlerbild wenn mit sudo systemctl enable mpd dieser systemweit gestartet wurde. Denke es handelt es sich um kein gravierendes Problem, denn an sich funktioniert ja alles, nur der Autostart schlägt jedes mal fehl. Hier noch die entsprechenden Konfigurationsdateien:
mpd.conf:
bind_to_address "127.0.0.1" music_directory "~/Musik" playlist_directory "~/.mpd/playlists" db_file "~/.mpd/mpd.db" log_file "~/.mpd/mpd.log" pid_file "~/.mpd/mpd.pid" state_file "~/.mpd/mpdstate" audio_output { type "pulse" name "pulse audio" device "pulse" } input { plugin "tidal" enabled "no" } input { plugin "qobuz" enabled "no" } decoder { enabled "no" plugin "wildmidi" config_file "/etc/timidity/timidity.cfg" }
Die Einträge "tidal, qobuz und wildmidi dienen nur dazu die ansonsten erscheinenden Fehlermeldungen beim Start von mpd zu vermeiden. Auch ohne diese Einträge und den erscheinenden Fehlermeldungen funktioniert der mpd.
Die in ~/.config/systemd/user/default.target.wants/ verlinkte mpd.service:
[Unit] Description=Music Player Daemon Documentation=man:mpd(1) man:mpd.conf(5) Documentation=file:///usr/share/doc/mpd/html/user.html After=network.target sound.target [Service] Type=notify ExecStart=/usr/bin/mpd --no-daemon # Enable this setting to ask systemd to watch over MPD, see # systemd.service(5). This is disabled by default because it causes # periodic wakeups which are unnecessary if MPD is not playing. #WatchdogSec=120 # allow MPD to use real-time priority 50 LimitRTPRIO=50 LimitRTTIME=infinity # disallow writing to /usr, /bin, /sbin, ... #ProtectSystem=yes # more paranoid security settings NoNewPrivileges=yes ProtectKernelTunables=yes ProtectControlGroups=yes # AF_NETLINK is required by libsmbclient, or it will exit() .. *sigh* RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX AF_NETLINK RestrictNamespaces=yes # Note that "ProtectKernelModules=yes" is missing in the user unit # because systemd 232 is unable to reduce its own capabilities # ("Failed at step CAPABILITIES spawning /usr/bin/mpd: Operation not # permitted") [Install] WantedBy=default.target
Wenn jemand dazu einen Tipp hat warum der automatische Start jedes mal fehlschlägt, manuell gestartet aber alles perfekt funktioniert - ich nehme jeden Hinweis & Ratschlag gerne entgegen! Ist wahrscheinlich wieder nur eine Kleinigkeit, aber ich komme beim besten Willen nicht zu einer Lösung...
Danke für Eure Zeit & Mühe!