There is indeed a third way, which fits nicely in to the Qubes
framework, and is used by qvm-service. Instead of disabling the
service, control it.
If your service is foo.service:
Create a folder foo.service.d, and create a file 10_qubes.conf with
something like
```
[Unit]
ConditionPathExists=/var/run/qubes/service/foo
After=qubes.sysinit.service
```
Now you can control with `qvm-service --enable <qube> foo` in qubes
where you want the service to run.
You could invert the sense of control by using
ConditionPathExists=!<some parameter> but this may lead to confusion.