diff options
author | John Crispin <blogic@openwrt.org> | 2013-11-08 22:25:20 +0100 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2013-11-08 22:40:03 +0100 |
commit | 315f04d8b823adda96041c17f6672b7790376ccb (patch) | |
tree | 0016c7a4304595a3f453dbe12f3a0ef1e433db42 | |
parent | 8fd40e8352bac9992ca4ebd50998d4e961f5404b (diff) | |
download | unitd-315f04d8b823adda96041c17f6672b7790376ccb.tar unitd-315f04d8b823adda96041c17f6672b7790376ccb.zip |
the automatic service restart should not happen during sysupgrade
Signed-off-by: John Crispin <blogic@openwrt.org>
-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; } |