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@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/systemd-devel > _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel