diff options
Diffstat (limited to 'sysdep/unix')
-rw-r--r-- | sysdep/unix/config.Y | 3 | ||||
-rw-r--r-- | sysdep/unix/main.c | 10 |
2 files changed, 8 insertions, 5 deletions
diff --git a/sysdep/unix/config.Y b/sysdep/unix/config.Y index 299cc41..cd553f8 100644 --- a/sysdep/unix/config.Y +++ b/sysdep/unix/config.Y @@ -67,6 +67,9 @@ log_cat: CF_CLI(CONFIGURE, cfg_name, [<file>], [[Reload configuration]]) { cmd_reconfig($2); } ; +CF_CLI(SHUTDOWN,,, [[Shut the daemon down]]) +{ cli_msg(7, "Shutdown ordered"); order_shutdown(); } ; + cfg_name: /* empty */ { $$ = NULL; } | TEXT diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index 97b9dc6..5019a3d 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -29,8 +29,6 @@ #include "unix.h" #include "krt.h" -int shutting_down; - /* * Debugging */ @@ -153,6 +151,9 @@ cmd_reconfig(char *name) case CONF_PROGRESS: cli_msg(4, "Reconfiguration in progress."); break; + case CONF_SHUTDOWN: + cli_msg(6, "Reconfiguration ignored, shutting down."); + break; default: cli_msg(5, "Reconfiguration already in progress, queueing new config"); } @@ -275,12 +276,11 @@ void async_shutdown(void) { debug("Shutting down...\n"); - shutting_down = 1; - protos_shutdown(); + order_shutdown(); } void -protos_shutdown_notify(void) +sysdep_shutdown_done(void) { unlink(PATH_CONTROL_SOCKET); die("System shutdown completed"); |