Disable conditions for some non-oneshot (runtime) hooks

The SVC_RECONF, SVC_LOST, SVC_START, and RUNLEVEL_CHANGE hooks are not
one-shot, they are also not regular conditions since there exist no
mechanism to reset them from flux.

One idea was to turn them into actions, but the lost + start hooks need
to be called multiple times per trigger, e.g. `initctl reload`, which
turned out to be non-trivial to implement right now.

Therefore, for (at least) the Finit v3.1 release these conditions have
been disabled ("nop") and ignored by Finit.  Only actual C-style plugins
will be called.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson committed 2018-01-14 11:24:29 +01:00
1 parent 8ef216af62
commit 1017e7b8e5
3 files changed
+28 -6

No files matched your search

+12 -1
View File
@@ -149,6 +149,9 @@ static void cond_update(const char *name)
void cond_set(const char *name)
{
_d("%s", name);
if (string_compare(name, "nop"))
return;
if (!cond_set_path(cond_path(name), COND_ON))
return;
@@ -157,9 +160,14 @@ void cond_set(const char *name)
void cond_set_oneshot(const char *name)
{
const char *path = cond_path(name);
const char *path;
if (string_compare(name, "nop"))
return;
path = cond_path(name);
_d("s => %s", name, path);
if (cond_checkpath(path))
return;
@@ -170,6 +178,9 @@ void cond_set_oneshot(const char *name)
void cond_clear(const char *name)
{
_d("%s", name);
if (string_compare(name, "nop"))
return;
if (!cond_set_path(cond_path(name), COND_OFF))
return;