Even wat achtergrond: Ik gebruik op Kubuntu 22.04 (en ook in eerdere versies) Cantata als muziekspeler. Voorheen had ik voor de opzet gekozen waarbij Cantata de MPD-server beheert en deze als het ware verbergt voor de gebuiker. Een vriendelijke optie maar ik wilde weer graag terug naar een losse MPD-server en Cantata als 'domme' client. Dat is uiteindelijk, na toch wel een beetje beschamend veel gerommel, gelukt.
Het gerommel zat vooral in de combinatie MPD en systemd. Er bleken op twee niveaus services voor MPD actief (user en system) die elkaar in de wielen aan het rijden waren (zelfde poort proberen te bezetten). Eigenlijk 4 services. Op zowel systeem als gebruikersniveau kun je mpd en mpd.socket laten draaien. mpd.socket kan luisteren naar connecties en indien een client wil verbinden zal mpd.socket de service mpd aanslingeren. Uiteindelijk heb ik alle services uitgeschakeld op niveaus --system, --user en --global (die was nieuw voor mij). Daarna voor --user alleen nog de service mpd zelf ingeschakeld.
Zoals gezegd werkt nu alles goed behalve dat er nu volgens pgrep 2 instanties van mpd draaien:
erik@erik-desktop:~$ pgrep -l mpd
2208 mpd
2637 mpd
Even in meer detail met ps:
erik@erik-desktop:~$ ps aux | grep mpd
erik 2208 0.4 0.7 961836 59876 ? SLsl 19:50 0:10 /usr/bin/mpd --systemd
erik 2637 0.0 0.3 953460 28996 ? Ssl 19:51 0:00 /usr/bin/mpd
...
Proces met PID 2208 is de instantie die door systemd is gestart, dat is te zien aan de parameter en aan systemd status:
erik@erik-desktop:~$ systemctl --user status mpd
● mpd.service - Music Player Daemon
Loaded: loaded (/usr/lib/systemd/user/mpd.service; enabled; vendor preset:>
Active: active (running) since Thu 2023-07-27 19:50:58 CEST; 38min ago
Docs: man:mpd(1)
man:mpd.conf(5)
file:///usr/share/doc/mpd/html/user.html
Main PID: 2208 (mpd)
Tasks: 8 (limit: 9216)
Memory: 89.4M
CPU: 11.261s
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/mpd.service
└─2208 /usr/bin/mpd --systemd
Heb ook even met netstat gekeken en 2208 is ook het proces dat op poort 6600 luistert.
erik@erik-desktop:~$ netstat -tlpn | grep 6600
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::6600 :::* LISTEN 2208/mpd
Op IPv6 maar dat is prima voor lokaal.
Maar waar komt in hemelsnaam dat tweede proces vandaan? Hoe kom ik daarachter? Mis ik mogelijk nog een systemd-unit of zijn er nog andere initsystemen actief op 22.04?