blob: 8c65764fb4e9f1bec5b179cf8c05af60001b3984 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001--- a/inittab.c
2+++ b/inittab.c
3@@ -327,8 +327,8 @@ void procd_inittab(void)
4
5 r = read(fd, cmdline, sizeof(cmdline) - 1);
6 cmdline[r] = '\0';
7- close(fd);
8- regcomp(&pat_cmdline, "PROD=([0-2])", REG_EXTENDED);
9+ close(fd);
10+ regcomp(&pat_cmdline, "PROD=([0-5])", REG_EXTENDED);
11 if (!regexec(&pat_cmdline, cmdline, 1, cmd_matches, 0)) {
12 cmdline[cmd_matches[0].rm_eo] = '\0';
13 production_mode = atoi(&cmdline[cmd_matches[0].rm_eo - 1]);
14--- a/rcS.c
15+++ b/rcS.c
16@@ -207,15 +207,26 @@ static int _rc(struct runqueue *q, char
17 }
18 token = strtok(NULL, " ");
19 } while (token != NULL);
20- if (token == NULL && strstr(gl.gl_pathv[j], "prod_init"))
21+
22+ if (token == NULL && strstr(gl.gl_pathv[j], "rdp_init"))
23 {
24- add_initd(q, gl.gl_pathv[j], param);
25- break;
26+ if (production_mode == 5) {
27+ add_initd(q, gl.gl_pathv[j], param);
28+ break;
29+ } else
30+ continue;
31+ } else if (token == NULL && strstr(gl.gl_pathv[j], "prod_init"))
32+ {
33+ if (production_mode == 1) {
34+ add_initd(q, gl.gl_pathv[j], param);
35+ break;
36+ } else
37+ continue;
38 } else {
39 continue;
40 }
41 } else {
42- if (strstr(gl.gl_pathv[j], "prod_init"))
43+ if (strstr(gl.gl_pathv[j], "prod_init") || strstr(gl.gl_pathv[j], "rdp_init"))
44 continue;
45 }
46 add_initd(q, gl.gl_pathv[j], param);