diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2016-01-31 16:40:27 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2016-01-31 16:40:27 +0200 |
commit | d9d267052215f223897af18310e4adee310308e7 (patch) | |
tree | 6b6f9eb636975f5721e00d2d71007185fa5b2fbf /src/ctl.c | |
parent | 6f9f2fd7a6952b544dccbf0bdc7f9c312f602afe (diff) | |
download | pies-d9d267052215f223897af18310e4adee310308e7.tar.gz pies-d9d267052215f223897af18310e4adee310308e7.tar.bz2 |
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.
Diffstat (limited to 'src/ctl.c')
-rw-r--r-- | src/ctl.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -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; |