<div dir="ltr"><span style="font-size:12.8px">Hi Michael,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thanks for your comments, looks like it will work. I will try it. </div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Just adding a question, if my specific is written in old style (SystemVinit), it has LSB header, how can I modify it to make it depend on <span style="font-size:12.8px">multi-user.target.</span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">Thanks,</span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">Brs</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 25, 2016 at 5:09 PM, Michael Chapman <span dir="ltr"><<a href="mailto:mike@very.puzzling.org" target="_blank">mike@very.puzzling.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, 19 May 2016, Bao Nguyen wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi everyone,<br>
<br>
When the system is shutdown, systemd will terminate all services in<br>
parallel manner, could you let me know if there is any ways to tell systemd<br>
to shutdown a specific service first, then shutdown all remaining services?<br>
</blockquote>
<br></span>
Hello,<br>
<br>
I haven't tested it, but as far as I know all you need to do is ensure your special service is After=multi-user.target, i.e.:<br>
<br>
  [Unit]<br>
  Description=Some service that must be started late / stopped early<br>
  After=multi-user.target<br>
<br>
  [Service]<br>
  # ...<br>
<br>
  [Install]<br>
  WantedBy=multi-user.target<br>
<br>
A target unit is automatically After= all the units that it Wants=, Requires=, etc., but this automatic dependency is *not* added if that would create a dependency loop.<br>
<br>
So at shutdown systemd knows it needs to stop all services and targets. Because your special service is After=multi-user.target, and multi-user.target is After= all *other* normal services, everything gets ordered correctly: your service is stopped first, then multi-user.target is stopped, then all the other services are stopped.<br>
<br>
Now, this isn't the *cleanest* solution -- you really want to be specific in your service dependencies rather than depending upon a whole target's worth of services, and there's always the chance that multi-user.target might be stopped some other way before shutdown -- but it does seem as if it goes some way to solving your problem.<span class="HOEnZb"><font color="#888888"><br>
<br>
- Michael<br>
</font></span></blockquote></div><br></div>