From d9d267052215f223897af18310e4adee310308e7 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Sun, 31 Jan 2016 16:40:27 +0200 Subject: Support sysvinit ondemand components. * src/ctl.c (fun_start): Handle status_finished same as status_sleeping (for restarting ondemand components). * src/progman.c: Respawn ondemand components. * src/sysvinit.c (enablecomp): Handle pies_comp_ondemand. (sysvinit_demand): New function. (sysvinit_fifo_handler): Handle ondemand runlevels. (inittab_parse): Support "off" fields. Convert runlevels to upper case. --- src/ctl.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/ctl.c') diff --git a/src/ctl.c b/src/ctl.c index 0e5ea97..489fc7f 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -1876,21 +1876,23 @@ fun_stop (struct json_value *result, struct prog *prog) static int fun_start (struct json_value *result, struct prog *prog) { - if (prog->v.p.status == status_disabled) + switch (prog->v.p.status) { + case status_disabled: prog->v.p.comp->flags &= ~CF_DISABLED; prog->v.p.status = status_enabled; json_object_set_string (result, "status", "OK"); - } - else if (prog->v.p.status == status_sleeping) - { + break; + + case status_sleeping: + case status_finished: prog->v.p.status = status_enabled; prog->v.p.failcount = 0; prog->v.p.timestamp = 0; json_object_set_string (result, "status", "OK"); - } - else - { + break; + + default: json_object_set_string (result, "status", "ER"); json_object_set_string (result, "error_message", "already running"); return 1; -- cgit v1.2.1