From c9581808b72ff25623c87cf49c471ce7f017985d Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Sat, 13 Feb 2016 21:27:11 +0200 Subject: 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. --- src/prog.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/prog.h') diff --git a/src/prog.h b/src/prog.h index 2dc8591..1db2eee 100644 --- a/src/prog.h +++ b/src/prog.h @@ -23,9 +23,8 @@ enum prog_type enum prog_status { - status_enabled, /* Component enabled. prog->pid!=0 shows if it is - actually running */ - status_disabled, /* Component is disabled. */ + status_stopped, /* Component is stopped. */ + status_running, /* Component is running */ status_listener, /* Component is an inetd listener */ status_sleeping, /* Component is sleeping. An attempt to start it will be made at prog->v.p.timestamp + SLEEPTIME */ @@ -60,7 +59,7 @@ struct prog enum prog_status status; /* Current component status */ /* If status == status_listener: */ size_t num_instances; /* Number of running instances */ - /* If comp->type == pies_comp_inetd && status == status_enabled */ + /* If comp->type == pies_comp_inetd && status == status_running */ struct prog *listener; union pies_sockaddr_storage sa_storage; size_t sa_len; -- cgit v1.2.1