Description of problem:
Isolating systemd targets like 'multi-user.target' and 'graphical.target' will stop the hyperv-daemon services.
Version-Release number of selected component (if applicable):
Isolate any systemd target.
Steps to Reproduce:
1. systemctl isolate multi-user.target
All three hyperv-daemon services are stopped:
All three hyperv-daemons should continue to run.
The only time that systemd will start these three services is when their associated devices devices are created by udev. These .device units "Want" their companion .service units, and the .service units "BindsTo" the .device units. However, isolating systemd targets does not add or remove the devices, nor does the target "Want" or "Require", so systemd thinks that the isolated state should not include these services, and gracefully shuts them down.
There should be tighter coupling between the .device units and their .service units such that isolating targets shouldn't stop these services.
Adding a systemd drop-in with:
Seems to resolve this issue very directly.