aboutsummaryrefslogtreecommitdiff
path: root/src/rc
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-03-11 15:00:16 +0000
committerRoy Marples <roy@marples.name>2008-03-11 15:00:16 +0000
commit40e12f6ba026af9c24d5c3d8e36512719ed5faee (patch)
tree06251344538a482a801e8750a3a0068ef5f5594a /src/rc
parent568ec5f343912f4b63a2db769da68e842a239ae5 (diff)
RC_SERVICE now points to the service file, so daemons can recall us directly.
Diffstat (limited to 'src/rc')
-rw-r--r--src/rc/rc.c6
-rw-r--r--src/rc/start-stop-daemon.c3
2 files changed, 4 insertions, 5 deletions
diff --git a/src/rc/rc.c b/src/rc/rc.c
index 9aa0a6c0..98b44cc8 100644
--- a/src/rc/rc.c
+++ b/src/rc/rc.c
@@ -560,7 +560,6 @@ static void run_script (const char *script)
eerrorx ("%s: failed to exec `%s'", applet, script);
}
-#ifndef PREFIX
static void do_coldplug (void)
{
size_t s;
@@ -661,7 +660,6 @@ static void do_coldplug (void)
printf (" %s", service);
printf ("%s\n", ecolor (ECOLOR_NORMAL));
}
-#endif
#include "_usage.h"
#define getoptstring "o:" getoptstring_COMMON
@@ -869,9 +867,9 @@ int main (int argc, char **argv)
}
#endif
-#ifndef PREFIX
+ /* Setup our coldplugged services now */
do_coldplug ();
-#endif
+
rc_plugin_run (RC_HOOK_RUNLEVEL_START_OUT, newlevel);
hook_out = 0;
diff --git a/src/rc/start-stop-daemon.c b/src/rc/start-stop-daemon.c
index d0e168af..9ffeba05 100644
--- a/src/rc/start-stop-daemon.c
+++ b/src/rc/start-stop-daemon.c
@@ -966,7 +966,8 @@ int start_stop_daemon (int argc, char **argv)
/* Clean the environment of any RC_ variables */
STRLIST_FOREACH (environ, env, i) {
- if (strncmp (env, "RC_", 3) == 0 ||
+ if ((strncmp (env, "RC_", 3) == 0 &&
+ strncmp (env, "RC_SERVICE=", strlen ("RC_SERVICE=")) != 0) ||
strncmp (env, "SSD_NICELEVEL=", strlen ("SSD_NICELEVEL=")) == 0)
continue;