Daemons are controlled by systemd or by user. Even when it is dbus unit it's still called and spawned via systemd. So either you start it in cli manually or via systemd. Conflict statement allows isolation of the services to avoid "strange unpredictable" behaviour. Pebbled app allows start/stopping the service and see its status. rockpoold is autostarted by app, moreover app locks down when daemon is not running (falls to waiting for service page). This basically grants certain predictability, not providing ultimate solution. Bcz ultimate solution should be a user's choice, nor programmer's. To be completely on the safe side we might implement checks for the stray pebbled processes (eg service is down but process is running) but that's too much overhead and unless reported with certain persistence by users - should be avoided.