b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | --- 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); |