diff --git a/master_utils.c b/master_utils.c index c2d9d77a..499de2c6 100644 --- a/master_utils.c +++ b/master_utils.c @@ -238,6 +238,9 @@ void uwsgi_reload(char **argv) { waitpid(WAIT_ANY, &waitpid_status, WNOHANG); } + // call atexit user exec + uwsgi_exec_atexit(); + if (uwsgi.exit_on_reload) { uwsgi_log("uWSGI: GAME OVER (insert coin)\n"); exit(0); diff --git a/uwsgi.c b/uwsgi.c index d3706655..77c01895 100644 --- a/uwsgi.c +++ b/uwsgi.c @@ -963,7 +963,7 @@ struct uwsgi_plugin unconfigured_plugin = { .after_request = unconfigured_after_hook, }; -static void uwsgi_exec_atexit(void) { +void uwsgi_exec_atexit(void) { if (getpid() == masterpid) { // now run exit scripts needed by the user struct uwsgi_string_list *usl = uwsgi.exec_as_user_atexit; diff --git a/uwsgi.h b/uwsgi.h index 402c2200..0832bacd 100644 --- a/uwsgi.h +++ b/uwsgi.h @@ -2834,6 +2834,7 @@ uint64_t uwsgi_micros(void); int uwsgi_is_file(char *); void uwsgi_receive_signal(int, char *, int); +void uwsgi_exec_atexit(void); #ifdef UWSGI_AS_SHARED_LIBRARY int uwsgi_init(int, char **, char **);