[CentOS] CentOS 7 and systemd: SysV initscript: how detect boot vs. interactive use?

whitivery
Mon, 19 Dec 2016 04:50:54 -0000

James Hogarth <james.hogarth at gmail.com>
wrote:

>On 18 Dec 2016 10:59, "whitivery" <co55-sy1t at
dea.spamcon.org> wrote:
>
>Moving from CentOS 5 to CentOS 7, discovered that a test in a SysV
>initscript for whether it is running interactively, instead of at boot
>time, no longer works.
>
>Under CentOS 7 / systemd, is there some way for the initscript to know
>this?
>
>
>Generally "interactive" init scripts are not in any way supported
under any
>RHEL version and can't be done under systemd on EL7
>
>What is it that it does and you are actually trying to achieve?
>
>If it's a password or something like that it's possible to integrate
with
>the systemd-ask-password facility from a unit file, but it is quite complex
>relatively speaking so it'd be useful to know the actual goal in mind
>before going down this road.

It is a system with several servers (various platforms/distros).

One piece of software runs on all of the servers.  For it to operate
correctly, the instance on one server (prime) must start before the others
(auxiliary).

So a boot delay is added (via a script sourced from initscript, which
first waits for network to come up) to set the boot delay values for each
server - prime at 0, others at some other value of 15 to 110 seconds
depending on platform.

But when it is necessary to manipulate the service interactively via the
"service" command, the boot delay needs to be bypassed.