<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Aug 10, 2018 at 3:54 PM Felipe Sateler <<a href="mailto:fsateler@debian.org" target="_blank">fsateler@debian.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Aug 10, 2018 at 7:42 AM Michael Biebl <<a href="mailto:biebl@debian.org" target="_blank">biebl@debian.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am 10.08.2018 um 13:32 schrieb Christian Ehrhardt:<br>
> I think I'd want/need a "dh_systemd_start --no-dependent-services/sockets"<br>
> option to intentionally have it generate "just" for libvirt.service and not<br>
> the sockets it depends on.<br>
> As mentioned, for all of the complexity pulling in the systemd people might<br>
> help as well.<br>
> So I'm eager to see what they will reply here as well.<br>
<br>
<br>
I guess the complication arises from the fact that<br>
dh_installinit/invoke-rc.d directly handles systemd service files if the<br>
SysV init script and service file name match.<br>
dh_installsystemd only handles those unit files for which no<br>
corresponding SysV init script exists.<br>
<br>
I think the solutions for this could be, to let dh_installsystemd handle<br>
all systemd unit files.<br>
dh_installinit/invoke-rc.d on the other hand would be updated to only<br>
handle SysV init scripts.<br>
<br>
In the long run I guess this will be less confusing at is clearer which<br>
tool is responsible for which task and it makes it easier to override<br>
the behaviour in debian/rules.<br>
<br>
Felipe has been doing some initial work for enable that kind of<br>
behaviour at<br>
<a href="https://salsa.debian.org/debian/init-system-helpers/merge_requests/4" rel="noreferrer" target="_blank">https://salsa.debian.org/debian/init-system-helpers/merge_requests/4</a></blockquote><div><br></div><div>This should help, but then you get the next problem: dh_installsystemd parses the Also= lines, and generates deb-systemd-invoke for all referenced units.</div><div><br></div><div>I think the Also= lines in libvirtd.service are superfluous and removing them should avoid this problem. </div><div><br></div><div>I'm still not sure why we parse Also= for starting. Michael, do you remember the rationale?</div></div></div></blockquote><div><br></div><div>Uh I see, you mean dropping this section from libvirtd.service right?</div><div><br></div>[Install]<br>WantedBy=multi-user.target<br>Also=virtlockd.socket<br>Also=virtlogd.socket<div><br></div><div>The above is certainly worth a try - I need to check what I "loose" by that.</div><div><br></div><div>I'd still need to drop virtlogd sysV script as the "invoke.rc virtlogd" will complain about missing dependencies (the new .socket for it can't be started since the service is already running).</div><div>The dh_systemd_start generated code triggers "start" and ignores the retval, the dh_installinit code through invoke.rc calls start but fails since systemd replied "I'm running but there are dependency issues".</div><div>Because virtlogd.service has Requires virtlogd.socket and virtlogd-admin.socket.</div><div><br></div><div>You end like:</div><div><p style="margin:0px 0px 0.8em;padding:0px;width:auto;max-width:45em;color:rgb(51,51,51);font-family:monospace;font-size:12px;text-align:left;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">virtlogd.service - Virtual machine log manager<br>   Loaded: loaded (/lib/systemd/system/virtlogd.service; indirect; vendor preset: enabled)<br>   Active: active (running) since Thu 2018-08-09 05:26:07 UTC; 3h 45min ago<br>     Docs: man:virtlogd(8)<br>           <a rel="nofollow" href="https://libvirt.org/" style="color:rgb(0,51,170);text-decoration:none" target="_blank">https://libvirt.org</a><br> Main PID: 4059 (virtlogd)<br>    Tasks: 2 (limit: 4915)<br>   CGroup: /system.slice/virtlogd.service<br>           └─4059 /usr/sbin/virtlogd</p><p style="margin:0px 0px 0.8em;padding:0px;width:auto;max-width:45em;color:rgb(51,51,51);font-family:monospace;font-size:12px;text-align:left;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Aug 09 09:10:37 c2 systemd[1]: Dependency failed for Virtual machine log manager.<br>Aug 09 09:10:37 c2 systemd[1]: virtlogd.service: Job virtlogd.service/start failed with result 'dependency'.</p><br></div><div>That has RC=1 if run directly.</div><div><br></div><div>And as I said, dh_systemd_start code will ignore the RC but dh_installinit won't</div><div>If there is also a good hint on that let us know.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div></div></div>-- <br><div dir="ltr" class="m_-758819689260865765m_-3598634361338336374m_-3617357507556047753gmail_signature" data-smartmail="gmail_signature"><br>Saludos,<br>Felipe Sateler</div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="m_-758819689260865765gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><span style="color:rgb(136,136,136);font-size:12.8px">Christian Ehrhardt</span><div style="color:rgb(136,136,136);font-size:12.8px">Software Engineer, Ubuntu Server</div><div style="color:rgb(136,136,136);font-size:12.8px">Canonical Ltd</div></div></div></div></div></div>