[systemd-devel] Behavior of BindsTo when stopping a service

Andrei Borzenkov arvidjaar at gmail.com
Sat Jan 27 19:22:56 UTC 2018


26.01.2018 05:11, Amit Saha пишет:
> Hello,
> 
> I have a systemd service - drainconnections which I want to to make sure
> finishes stopping before systemd starts stopping another service. What I
> also want is to if I stop supervisord service, drainconnections should be
> stopped first.
> 
> It seems like BindsTo is what I need for establishing the coupling between
> the two units.

If your description of services relationship is accurate and complete,
BindsTo is too strong here; you really need just PartsOf.

> The following unit file describes drainconnections:
> 
> 
> [Unit]
> Description=Drain Connections
> After=supervisord.service
> BindsTo=supervisord.service
> 
> [Service]
> Type=oneshot
> RemainAfterExit=True
> ExecStart=/bin/true

I think recent sytsemd relaxes requirement, so you can omit ExecStart here.

> ExecStop=/usr/bin/touch /var/shuttingdown1
> ExecStop=/usr/bin/sleep 60
> ExecStop=/usr/bin/touch /var/shuttingdown2
> 
> [Install]
> WantedBy=multi-user.target
> 
> 
> In addition, I also needed to add BindsTo=drainconnections to the
> supervisord service.
> 

This will create dependency loop with your unit definition shown above.

> Things work as desired for me considering the above configuration.
> 
> Am I on the right track here? Thanks in advance.
> 
> Best Wishes,
> Amit.
> 
> 
> 
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/systemd-devel
> 



More information about the systemd-devel mailing list