diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2016-02-13 21:27:11 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2016-02-13 21:46:32 +0200 |
commit | c9581808b72ff25623c87cf49c471ce7f017985d (patch) | |
tree | 3b6c7143eec966561e24c05ffb87e1d55b4acf58 /src/prog.h | |
parent | 3c774556e22cd30c42304614e14218a767e4d700 (diff) | |
download | pies-c9581808b72ff25623c87cf49c471ce7f017985d.tar.gz pies-c9581808b72ff25623c87cf49c471ce7f017985d.tar.bz2 |
Stop disabled components when switching runlevels.
* src/prog.h (status_enabled, status_disabled): Remove.
(status_stopped, status_running): New modes.
All uses updated.
* src/comp.c (component_finish): Disable ondemand component
by default.
* src/ctl.c (json_object_set_bool): New function.
(pies_status_str): Update.
(prog_serialize): Set "disabled" attribute.
(fun_stop, fun_start): Use CF_DISABLED flag.
(res_runlevel): Schedule ACTION_RELOAD.
* src/pies.h (json_object_set_bool): New proto.
* src/piesctl.c (status_trans): Reflect changes in modes.
(print_comp): Check the "disabled" attribute.
* src/progman.c (register_prog0)
(prog_open_socket,prog_start,prog_stop)
(progman_wake_sleeping)
(prog_start_prerequisites)
(react, progman_cleanup)
(progman_stop_component): Update.
(no_children_left): Fix.
* src/sysvinit.c (enablecomp): Make CF_DISABLED flag
persist for ondemand components.
(runlevel_setup_prog): Use CF_DISABLED flag.
(inittrans): Stop inactivated processes.
* doc/pies.texi: Update.
Diffstat (limited to 'src/prog.h')
-rw-r--r-- | src/prog.h | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -23,9 +23,8 @@ enum prog_type | |||
23 | 23 | ||
24 | enum prog_status | 24 | enum prog_status |
25 | { | 25 | { |
26 | status_enabled, /* Component enabled. prog->pid!=0 shows if it is | 26 | status_stopped, /* Component is stopped. */ |
27 | actually running */ | 27 | status_running, /* Component is running */ |
28 | status_disabled, /* Component is disabled. */ | ||
29 | status_listener, /* Component is an inetd listener */ | 28 | status_listener, /* Component is an inetd listener */ |
30 | status_sleeping, /* Component is sleeping. An attempt to start it will | 29 | status_sleeping, /* Component is sleeping. An attempt to start it will |
31 | be made at prog->v.p.timestamp + SLEEPTIME */ | 30 | be made at prog->v.p.timestamp + SLEEPTIME */ |
@@ -60,7 +59,7 @@ struct prog | |||
60 | enum prog_status status; /* Current component status */ | 59 | enum prog_status status; /* Current component status */ |
61 | /* If status == status_listener: */ | 60 | /* If status == status_listener: */ |
62 | size_t num_instances; /* Number of running instances */ | 61 | size_t num_instances; /* Number of running instances */ |
63 | /* If comp->type == pies_comp_inetd && status == status_enabled */ | 62 | /* If comp->type == pies_comp_inetd && status == status_running */ |
64 | struct prog *listener; | 63 | struct prog *listener; |
65 | union pies_sockaddr_storage sa_storage; | 64 | union pies_sockaddr_storage sa_storage; |
66 | size_t sa_len; | 65 | size_t sa_len; |