diff --git a/init/init.c b/init/init.c index 013f55c68..ab2d0ea91 100644 --- a/init/init.c +++ b/init/init.c @@ -715,6 +715,11 @@ static void shutdown_system(void) { sigset_t block_signals; + /* run everything to be run at "shutdown". This is done _prior_ + * to killing everything, in case people wish to use scripts to + * shut things down gracefully... */ + run_actions(SHUTDOWN); + /* first disable all our signals */ sigemptyset(&block_signals); sigaddset(&block_signals, SIGHUP); @@ -744,9 +749,6 @@ static void shutdown_system(void) kill(-1, SIGKILL); sleep(1); - /* run everything to be run at "shutdown" */ - run_actions(SHUTDOWN); - sync(); if (kernelVersion > 0 && kernelVersion <= KERNEL_VERSION(2, 2, 11)) { /* bdflush, kupdate not needed for kernels >2.2.11 */