<div><br><div class="gmail_quote"><div dir="auto">On Sun, 28 Jan 2018 at 6:22 am, Andrei Borzenkov <<a href="mailto:arvidjaar@gmail.com">arvidjaar@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">26.01.2018 05:11, Amit Saha пишет:<br>
> Hello,<br>
><br>
> I have a systemd service - drainconnections which I want to to make sure<br>
> finishes stopping before systemd starts stopping another service. What I<br>
> also want is to if I stop supervisord service, drainconnections should be<br>
> stopped first.<br>
><br>
> It seems like BindsTo is what I need for establishing the coupling between<br>
> the two units.<br>
<br>
If your description of services relationship is accurate and complete,<br>
BindsTo is too strong here; you really need just PartsOf.</blockquote><div dir="auto"><br></div><div dir="auto">Thanks. PartOf looks like something more suitable. Would having PartOf in supervisord obey the before after relationship setup by drainconnections service?</div><div dir="auto"><br></div><div dir="auto">I will give it a shot.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> The following unit file describes drainconnections:<br>
><br>
><br>
> [Unit]<br>
> Description=Drain Connections<br>
> After=supervisord.service<br>
> BindsTo=supervisord.service<br>
><br>
> [Service]<br>
> Type=oneshot<br>
> RemainAfterExit=True<br>
> ExecStart=/bin/true<br>
<br>
I think recent sytsemd relaxes requirement, so you can omit ExecStart here.</blockquote><div dir="auto"><br></div><div dir="auto">Thanks.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> ExecStop=/usr/bin/touch /var/shuttingdown1<br>
> ExecStop=/usr/bin/sleep 60<br>
> ExecStop=/usr/bin/touch /var/shuttingdown2<br>
><br>
> [Install]<br>
> WantedBy=multi-user.target<br>
><br>
><br>
> In addition, I also needed to add BindsTo=drainconnections to the<br>
> supervisord service.<br>
><br>
<br>
This will create dependency loop with your unit definition shown above.</blockquote><div dir="auto"><br></div><div dir="auto">Wouldn’t the Before/After take care of breaking the dependency loop? That seems to be what I observed.</div><div dir="auto"><br></div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> Things work as desired for me considering the above configuration.<br>
><br>
> Am I on the right track here? Thanks in advance.<br>
><br>
> Best Wishes,<br>
> Amit.<br>
><br>
><br>
><br>
> _______________________________________________<br>
> systemd-devel mailing list<br>
> <a href="mailto:systemd-devel@lists.freedesktop.org" target="_blank">systemd-devel@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/systemd-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/systemd-devel</a><br>
><br>
<br>
</blockquote></div></div>