diff options
-rw-r--r-- | instance.c | 3 | ||||
-rw-r--r-- | procd.h | 1 | ||||
-rw-r--r-- | system.c | 4 |
3 files changed, 8 insertions, 0 deletions
@@ -149,6 +149,9 @@ instance_exit(struct uloop_process *p, int ret) runtime = tp.tv_sec - in->start.tv_sec; DEBUG(1, "Instance %s::%s exit with error code %d after %ld seconds\n", in->srv->name, in->name, ret, runtime); + if (upgrade_running) + return; + uloop_timeout_cancel(&in->timeout); if (in->halt) { /* no action */ @@ -42,6 +42,7 @@ } while (0) extern char *ubus_socket; +extern int upgrade_running; extern unsigned int debug; void debug_init(void); @@ -29,6 +29,8 @@ static struct blob_buf b; +int upgrade_running = 0; + static int system_board(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) @@ -191,6 +193,8 @@ static int system_upgrade(struct ubus_context *ctx, struct ubus_object *obj, log_shutdown(); hotplug_shutdown(); + upgrade_running = 1; + return 0; } |