Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Music Player Daemon en systemd: twee processen  (gelezen 713 keer)

Music Player Daemon en systemd: twee processen
« Gepost op: 2023/07/27, 20:32:22 »
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?

Re: Music Player Daemon en systemd: twee processen
« Reactie #1 Gepost op: 2023/07/29, 12:08:12 »
Denk dat het is opgelost. In de lijst van geïnstalleerde bestanden van pakket mpd kwam ik volgende tegen:
/etc/xdg/autostart/mpd.desktop
Dit bestand was hoogst waarschijnlijk verantwoordelijk voor aanroepen mpd zonder parameter --systemd. Heb het verwijderd en nu is er nog maar 1 proces actief dat wel wordt gestart middels systemd  ^-^. Waarschijnlijk gaat dit bestand wel terugkomen als ik mpd opnieuw zou installeren.

edit: Heb een minder brute manier gevonden. Blijkbaar kun je een .desktop-bestand in /etc/xdg/autostart overschrijven. Als het bestand in ~/.config/autostart een zelfde naam heeft en Hidden op true heeft staan dan heeft dat bestand voorrang. Een entry met hidden wordt door XDG Autostart niet uitgevoerd. Heb die voor MPD nu zo gezet in ~/.config/mpd
# This entry should prevent entry in /etc/xdg/autostart to execute.
[Desktop Entry]
Type=Application
Hidden=true
Name=MPD Music Player Daemon

Bronnen:
https://wiki.archlinux.org/title/XDG_Autostart
https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html#startup
https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html
« Laatst bewerkt op: 2023/07/29, 16:23:34 door erik1984 »