From: John Crispin Date: Fri, 8 Nov 2013 21:25:20 +0000 (+0100) Subject: the automatic service restart should not happen during sysupgrade X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fprocd.git;a=commitdiff_plain;h=315f04d8b823adda96041c17f6672b7790376ccb the automatic service restart should not happen during sysupgrade Signed-off-by: John Crispin --- diff --git a/instance.c b/instance.c index 7895a04..05b0f99 100644 --- a/instance.c +++ b/instance.c @@ -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 */ diff --git a/procd.h b/procd.h index 34cc9a1..a0c7a99 100644 --- a/procd.h +++ b/procd.h @@ -42,6 +42,7 @@ } while (0) extern char *ubus_socket; +extern int upgrade_running; extern unsigned int debug; void debug_init(void); diff --git a/system.c b/system.c index 0b3c466..54a84b4 100644 --- a/system.c +++ b/system.c @@ -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; }