This is indeed the generally correct order, though I think it's a bit too primitive for real-world shutdown on more dynamic systems, particularly desktops. It's good practice to touch /etc/nologin or /run/nologin, sync the dirty buffers to disk, turn off swap, detach loopback and volumes (DeviceMapper, etc.) and so on.

A theoretically advantegeous thing that systemd does (Linux-specific, obviously) is to exec() itself into a separate shutdown loop process that finishes by handing back control to the initramfs, so that rootfs can actually be unmounted. I hear this was recently merged into logind directly, which doesn't leave a good taste in my mouth. Just how essential this also is can debated.

Still, this is useful enough for simpler, more static systems. OpenWrt's procd has a hardcoded shutdown sequence that isn't much more complicated than your four lines.

On 06/09/2015 10:24 AM, Steve Litt wrote:
Hi all,

I know the last part of system shutdown or reboot, after I've killed my
daemontools-supervised processes, has the following features:

* killall5 -15; sleep 2; killall5 -9; sleep 2

* umount -a

* mount -o remount,ro /dev/sda1

* /sbin/halt or /sbin/reboot

Could somebody confirm which order these things come in?

Thanks,

SteveT

Steve Litt
June 2015 featured book: The Key to Everyday Excellence
http://www.troubleshooters.com/key

Reply via email to