diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2019-06-24 12:56:24 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2019-06-24 12:56:24 +0300 |
commit | 006bfbc5235c181783445d321ce7a7e3c6d8bd8a (patch) | |
tree | f483e0d30c3e801add01b372b24a342281b70b86 /src/progman.c | |
parent | cb90ca582a46ef9f0779837dc4c6fb00656e70c9 (diff) | |
download | pies-006bfbc5235c181783445d321ce7a7e3c6d8bd8a.tar.gz pies-006bfbc5235c181783445d321ce7a7e3c6d8bd8a.tar.bz2 |
Enable/disable SystemV init code at compile time
* configure.ac: New option --enable-sysvinit. Disable the init
code if RUN_LVL is not available.
(PIES_SYSVINIT_ENABLED): New configuration define.
(PIES_COND_SYSVINIT): New condition
Print configuration settings summary.
* src/pies.h (is_sysvinit): Check for PIES_SYSVINIT_ENABLED.
(SYSVINIT_ACTIVE): New macro.
* grecs: Upgrade.
* src/Makefile.am: Conditionally link sysvinit-related code.
* src/cmdline.opt: Disable the --telinit option if sysvinit support
is not available.
(parse_options): Use SYSVINIT_ACTIVE in the conditional.
* src/comp.c (component_verify): Check if component definition is
allowed by the current state of the sysvinit support.
* src/ctl.c: Disable the /runlevel entry point if sysvinit support
is not compiled.
* src/diag.c (stderr_open): Make sure sysvinit-related code is not
compiled if the sysvinit support is not available.
* src/pies.c (config_syntax_tab): Add entry for CONF_INITTAB only if
sysvinit support is available.
(_cb_initdefault,_cb_runlevels): Remove. Use cb_initdefault and cb_runlevels
instead.
(component_keywords): Disable runlevels without sysvinit support.
(pies_keywords): Same for initdefault.
Use SYSVINIT_ACTIVE to suppress compilation of sysvinit code without
sysvinit support.
* src/progman.c: Use SYSVINIT_ACTIVE to suppress compilation of
sysvinit code without sysvinit support.
* src/sysvinit.c (cb_initdefault,cb_runlevels): New functions.
Diffstat (limited to 'src/progman.c')
-rw-r--r-- | src/progman.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/progman.c b/src/progman.c index 88f9afa..70ebf68 100644 --- a/src/progman.c +++ b/src/progman.c @@ -824,7 +824,7 @@ prog_start_prologue (struct prog *prog) environ_unset (prog->v.p.env, sockenv_var[i], NULL); } envop_exec (prog->v.p.comp->envop, prog->v.p.env); - if (init_process) + if (SYSVINIT_ACTIVE) { size_t i; for (i = 0; sysvinit_environ_hint[i]; i++) @@ -899,7 +899,7 @@ prog_start (struct prog *prog) if (is_sysvinit (prog->v.p.comp)) { - if (!init_process) + if (!SYSVINIT_ACTIVE) { if (prog->active) { @@ -995,7 +995,7 @@ prog_start (struct prog *prog) break; default: - if (init_process) + if (SYSVINIT_ACTIVE) { int fd = console_open (O_RDWR|O_NOCTTY); if (fd < 0) @@ -1037,7 +1037,7 @@ prog_start (struct prog *prog) break; } - if (!init_process) + if (!SYSVINIT_ACTIVE) { if (redir[RETR_ERR] == -1) { @@ -1600,7 +1600,7 @@ print_status (const char *tag, pid_t pid, int status, int expect_term) { int prio; - if (init_process) + if (SYSVINIT_ACTIVE) { if (debug_level <= 1) return; @@ -2147,7 +2147,8 @@ progman_cleanup (int expect_term) } else { - if (prog->v.p.comp->mode >= pies_mark_sysvinit + if (PIES_SYSVINIT_ENABLED + && prog->v.p.comp->mode >= pies_mark_sysvinit && prog->v.p.comp->mode != pies_comp_ondemand) { sysvinit_acct (SYSV_ACCT_PROC_STOP, "", prog_tag (prog), @@ -2303,7 +2304,7 @@ prog_to_stop (struct prog *prog) } #define DIAG_CON \ - (init_process ? (DIAG_TO_STDERR|DIAG_REOPEN_LOG) : diag_output) + (SYSVINIT_ACTIVE ? (DIAG_TO_STDERR|DIAG_REOPEN_LOG) : diag_output) /* Stop all program components marked for termination. Wait at most 2*shutdown_timeout seconds. */ |