diff options
Diffstat (limited to 'examples/shutdown-1.0/README')
-rw-r--r-- | examples/shutdown-1.0/README | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/shutdown-1.0/README b/examples/shutdown-1.0/README new file mode 100644 index 000000000..40fe0ebed --- /dev/null +++ b/examples/shutdown-1.0/README @@ -0,0 +1,30 @@ +# Replaces traditional overdesigned shutdown mechanism. +# +# No communication with init is necessary: +# just ask all processes to exit. +# Then unmount everything. Then reboot or power off. + +# Install /sbin/ symlinks named halt, reboot, poweroff +# (and also possibly shutdown) to e.g. +# /app/shutdown-1.0/script/shutdown: +# +ln -s /app/shutdown-1.0/script/shutdown /sbin/halt +ln -s /app/shutdown-1.0/script/shutdown /sbin/reboot +ln -s /app/shutdown-1.0/script/shutdown /sbin/poweroff +# +# shutdown spawns do_shutdown in new session, redirected to /dev/null, +# tells user that shutdown is in progress, and sleeps +# (for cosmetic reasons: do not confuse user by letting him +# type more commands in this terminal). +# +# do_shutdown tries to switch to a VT console. +# Then, (only if -r) it spawns a hardshutdown child, to reboot +# unconditionally in 30 seconds if something later goes seriously bad. +# Then it runs stop_tasks, writing to /var/log/reboot/YYYYMMDDhhmmss.log, +# then it runs stop_storage. +# Then it commands kernel to halt/reboot/poweroff, if requested. +# Then it sleeps forever. +# +# Build the hardshutdown binary: +# +cd script && ./hardshutdown.make.sh |