X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=service%2Finstance.c;h=e5c483010340d0a62206604f7551bf44469498e4;hp=4d340fd2da37b29dcfe23f9a21d0111cb22ea8e3;hb=5b1fb35427ba36d20c9f2a6b9403d1545b3abee6;hpb=961dc692aff7457f874bce61f8e766514edcf794 diff --git a/service/instance.c b/service/instance.c index 4d340fd..e5c4830 100644 --- a/service/instance.c +++ b/service/instance.c @@ -525,8 +525,6 @@ instance_exit(struct uloop_process *p, int ret) runtime = tp.tv_sec - in->start.tv_sec; DEBUG(2, "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); service_event("instance.stop", in->srv->name, in->name); @@ -563,11 +561,11 @@ instance_exit(struct uloop_process *p, int ret) } void -instance_stop(struct service_instance *in) +instance_stop(struct service_instance *in, bool halt) { if (!in->proc.pending) return; - in->halt = true; + in->halt = halt; in->restart = in->respawn = false; kill(in->proc.pid, SIGTERM); uloop_timeout_set(&in->timeout, in->term_timeout * 1000);