busybox/examples/shutdown-1.0
Denys Vlasenko c21dfaf836 examples/shutdown-1.0: an example of reboot which does not signal init
For one, my inits know nothing about the concept of "shutting down the system".

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-20 15:12:52 +02:00
..
script examples/shutdown-1.0: an example of reboot which does not signal init 2018-04-20 15:12:52 +02:00
README examples/shutdown-1.0: an example of reboot which does not signal init 2018-04-20 15:12:52 +02:00

# 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