<div dir="ltr">Hi Dan and Andrei, thanks a lot  for the explanation and code snippets, I try it out.<div><br></div><div>Thanks,</div><div>David.</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sun, Dec 8, 2024 at 10:13 AM Dan Nicholson <<a href="mailto:dbn@endlessos.org">dbn@endlessos.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, Dec 6, 2024 at 3:16 PM David Elie-Dit-Cosaque<br>
<<a href="mailto:deliedit@redhat.com" target="_blank">deliedit@redhat.com</a>> wrote:<br>
><br>
> Hi All,<br>
><br>
> I am trying to create a systemd service that would execute a script at shutdown before any other services start receiving shutdown notifications. I came up with this:<br>
><br>
> [Service]<br>
> Type=oneshot<br>
> RemainAfterExit=true<br>
> ExecStart=/usr/bin/true<br>
> ExecStop=/usr/local/bin/myscript.sh<br>
> [Install]<br>
> WantedBy=multi-user.target<br>
><br>
> The script does run after shutdown is initiated but since it relies on other services which are also shutting down, it fails. Is there a way to order the shutdown so that  myscript.sh is completed first before continuing with the shutdown?<br>
<br>
When stopping units, systemd reverses the ordering. For example, if<br>
you have a service that has After=ssh.service, then the service is<br>
started after ssh.service and stopped before it.<br>
<br>
So, you just need to add After for any services or targets that you<br>
care about even if you don't have ExecStart. Here's an example of a<br>
service that runs on shutdown that does nothing when starting -<br>
<a href="https://github.com/ostreedev/ostree/blob/main/src/boot/ostree-finalize-staged.service" rel="noreferrer" target="_blank">https://github.com/ostreedev/ostree/blob/main/src/boot/ostree-finalize-staged.service</a>.<br>
<br>
---<br>
Dan<br>
<br>
</blockquote></div>