<div dir="ltr">Hi,<div><br></div><div>Thanks for all your comments.</div><div><br></div><div>How do you think if we create a custom target to include all remaining services, then add this target to the dependency After= of the specific services. This way can make the specific stop before the services in the target when the system shutdowns?</div><div><br></div><div>Thanks,</div><div>BRs,<br></div><div>Natsu</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 23, 2016 at 3:54 PM, Lennart Poettering <span dir="ltr"><<a href="mailto:lennart@poettering.net" target="_blank">lennart@poettering.net</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 Sun, 22.05.16 15:24, Andrei Borzenkov (<a href="mailto:arvidjaar@gmail.com">arvidjaar@gmail.com</a>) wrote:<br>
<br>
> 19.05.2016 11:57, Martin Pitt пишет:<br>
> > Hello Bao,<br>
> ><br>
> > Bao Nguyen [2016-05-19 15:52 +0700]:<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>
> ><br>
> > The concept of "first"/"last" has no well-defined meaning in any<br>
> > non-serial init systems (not even SysV init with insserv, only with<br>
> > classic SysV init with manually set priorities). I've heard requests<br>
> > like "but this needs to be started as the last thing" a lot in the<br>
> > recent years, and there's no way all the services can simultaneously<br>
> > be "last" :-)<br>
><br>
> Well, the very good example of service that has to be started/stopped<br>
> before/after anything else is splash screen (plymouth or anything). It<br>
> really must appear as soon as user hit ENTER in "systemctl reboot". As<br>
> it stands now, there is no way to ensure it.<br>
<br>
</span>Well, shutting down is asynchronous anyway. Hence, yes, it should be shown<br>
pretty quickly, but strict, enforced ordering here is not necessary.<br>
<br>
This is a different story if you want a smooth transition between some<br>
graphical login thingy (such as gdm) and the ply shutdown screen, but<br>
in that case there should really be a direct hand-over so that gdm<br>
only releases the DRM when it knows that py has taken over. Such logic<br>
needs to happen directly between ply and gdm however, and in fact does<br>
already.<br>
<span class=""><br>
> > You should put sufficient After= properties into your service, so that<br>
> > it gets started after and stopped before the ones you specify.<br>
><br>
> Do you suggest adding dependency on plymouth to *every* service?<br>
<br>
</span>No, I'd suggest that you are using the wrong tool here and should use<br>
something else...<br>
<span class="im HOEnZb"><br>
Lennart<br>
<br>
--<br>
Lennart Poettering, Red Hat<br>
</span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
systemd-devel mailing list<br>
<a href="mailto:systemd-devel@lists.freedesktop.org">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>
</div></div></blockquote></div><br></div>