blob: 8c65764fb4e9f1bec5b179cf8c05af60001b3984 [file] [log] [blame]
--- a/inittab.c
+++ b/inittab.c
@@ -327,8 +327,8 @@ void procd_inittab(void)
r = read(fd, cmdline, sizeof(cmdline) - 1);
cmdline[r] = '\0';
- close(fd);
- regcomp(&pat_cmdline, "PROD=([0-2])", REG_EXTENDED);
+ close(fd);
+ regcomp(&pat_cmdline, "PROD=([0-5])", REG_EXTENDED);
if (!regexec(&pat_cmdline, cmdline, 1, cmd_matches, 0)) {
cmdline[cmd_matches[0].rm_eo] = '\0';
production_mode = atoi(&cmdline[cmd_matches[0].rm_eo - 1]);
--- a/rcS.c
+++ b/rcS.c
@@ -207,15 +207,26 @@ static int _rc(struct runqueue *q, char
}
token = strtok(NULL, " ");
} while (token != NULL);
- if (token == NULL && strstr(gl.gl_pathv[j], "prod_init"))
+
+ if (token == NULL && strstr(gl.gl_pathv[j], "rdp_init"))
{
- add_initd(q, gl.gl_pathv[j], param);
- break;
+ if (production_mode == 5) {
+ add_initd(q, gl.gl_pathv[j], param);
+ break;
+ } else
+ continue;
+ } else if (token == NULL && strstr(gl.gl_pathv[j], "prod_init"))
+ {
+ if (production_mode == 1) {
+ add_initd(q, gl.gl_pathv[j], param);
+ break;
+ } else
+ continue;
} else {
continue;
}
} else {
- if (strstr(gl.gl_pathv[j], "prod_init"))
+ if (strstr(gl.gl_pathv[j], "prod_init") || strstr(gl.gl_pathv[j], "rdp_init"))
continue;
}
add_initd(q, gl.gl_pathv[j], param);