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):
RHEL 7.7
How reproducible:
Isolate any systemd target.
Steps to Reproduce:
1. systemctl isolate multi-user.target
Actual results:
All three hyperv-daemon services are stopped:
hypervfcopyd.service
hypervkvpd.service
hypervvssd.service
Expected results:
All three hyperv-daemons should continue to run.
Additional info:
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.
We have no current plans to address this issue in RHEL7. As a workaround,
fixed services files can be placed to /etc/systemd/system and this will
override what's in /usr/lib/systemd/system/.
Also, the same issue was addressed in RHEL8:
https://bugzilla.redhat.com/show_bug.cgi?id=1769920