On Thu, Sep 29, 2016 at 01:00:15PM +0300, Nikolay Shirokovskiy wrote:
On 29.09.2016 12:21, Jiri Denemark wrote:
> On Thu, Sep 29, 2016 at 11:33:04 +0300, Nikolay Shirokovskiy wrote:
>> Hi, all.
>>
>> In virtuozzo mgmt we do not use libvirt-guests service. First because
>> we need do extra steps on domain start and second we want to decice
>> whether to suspend or to shutdown a domain on per domain basis. Starting
>> is not the problem but system shutdown is. As domain in systemd based
>> systems is just another unit we need to set ordering dependency so
>> that domain will not be killed before mgmt service as ba79e387 do for
>> libvirt-guest service. So let's remove this hardcode. I see 2 options.
>
> I don't see hard dependency anywhere in libvirtd.service, it just says
>
> Before=libvirt-guests.service
Nope, I meant this code from mentioned commit:
@@ -243,8 +243,10 @@ int virSystemdCreateMachine(const char *name,
iscontainer ? "container" : "vm",
(unsigned int)pidleader,
rootdir ? rootdir : "",
- 1, "Slice", "s",
- slicename) < 0)
+ 3,
+ "Slice", "s", slicename,
+ "After", "as", 1,
"libvirtd.service",
+ "Before", "as", 1,
"libvirt-guests.service") < 0)
This makes domain a special kind of unit (scope) and sets its ordering dependency.
You can't do this with libvirtd.service itself because its different unit.
IIUC, the problem is that you want to replace 'libvirt-guests.service'
with a different impl ?
The way systemd tends to deal with things that must be a configurable
choice in this way is to define a target, and sysadmins can then make
arbitrary services dependancies of that target.
eg, we'd set 'Before: virt-guest-shutdown.target', and then make
libvirt-guests.service be a part of that target by default. You can
then have ability to turn off libvirt-guest.service and put your
own custom thing inside virt-guest-shutdown.taget
Regards,
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://entangle-photo.org -o-
http://search.cpan.org/~danberr/ :|