diff --git a/src/cond-w.c b/src/cond-w.c index 1b58511b..1936a116 100644 --- a/src/cond-w.c +++ b/src/cond-w.c @@ -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; diff --git a/src/cond.h b/src/cond.h index 5eb01add..a2a251c7 100644 --- a/src/cond.h +++ b/src/cond.h @@ -4,7 +4,6 @@ #include #define COND_PATH _PATH_VARRUN "finit/cond" -#define COND_SVC_PATH COND_PATH "/svc/" #define COND_RECONF COND_PATH "/reconf" typedef enum cond_state { diff --git a/src/plugin.h b/src/plugin.h index 3c898abd..92779179 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -55,6 +55,18 @@ * Predefined hook points and corresponding conditions in Finit, * for use by plugins and scripts. Recommended to use the task * or run stanzas: task /bin/rescue.sh + * + * Some of the below hooks cannot (currently) be realized as conditions. + * The idea was to rename them action scripts, with optional argument, + * according to the following scheme: + * + * - HOOK_SVC_RECONF :: action/svc/reconf + * - HOOK_SVC_LOST :: action/svc/lost + * - HOOK_SVC_START :: action/svc/start + * - HOOK_RUNLEVEL_CHANGE :: action/sys/runlevel + * + * However, the implementation did not turn out to be stable enough for + * general release, so it was pulled. */ #define HOOK_TYPES { \ /* Bootstrap hooks, runlevel [S] */ \ @@ -67,10 +79,10 @@ CHOOSE(HOOK_SYSTEM_UP, "hook/sys/up"), \ \ /* Runtime hooks, runlevel [S1-9] */ \ - CHOOSE(HOOK_SVC_RECONF, "hook/svc/reconf"), \ - CHOOSE(HOOK_SVC_LOST, "hook/svc/lost"), \ - CHOOSE(HOOK_SVC_START, "hook/svc/start"), \ - CHOOSE(HOOK_RUNLEVEL_CHANGE, "hook/sys/runlevel"), \ + CHOOSE(HOOK_SVC_RECONF, "nop"), \ + CHOOSE(HOOK_SVC_LOST, "nop"), \ + CHOOSE(HOOK_SVC_START, "nop"), \ + CHOOSE(HOOK_RUNLEVEL_CHANGE, "nop"), \ \ /* Shutdown hooks, runlevel [06] */ \ CHOOSE(HOOK_SHUTDOWN, "hook/sys/shutdown"), \