diff --git a/package/system/procd/patches/0001-add-prod_init-script.patch b/package/system/procd/patches/0001-add-prod_init-script.patch
new file mode 100644
index 0000000..90d9247
--- /dev/null
+++ b/package/system/procd/patches/0001-add-prod_init-script.patch
@@ -0,0 +1,66 @@
+--- a/inittab.c
++++ b/inittab.c
+@@ -44,6 +44,7 @@
+ 
+ struct init_action;
+ char *console = NULL;
++int production_mode = 0;
+ 
+ struct init_handler {
+ 	const char *name;
+@@ -313,9 +314,24 @@ void procd_inittab(void)
+ #define LINE_LEN	128
+ 	FILE *fp = fopen(tab, "r");
+ 	struct init_action *a;
+-	regex_t pat_inittab;
+-	regmatch_t matches[5];
+-	char *line;
++	regex_t pat_inittab, pat_cmdline;
++	regmatch_t matches[5], cmd_matches[2];
++	char *line, cmdline[1024];
++	int r, fd = open("/proc/cmdline", O_RDONLY);
++
++	if (fd < 0) {
++		ERROR("Failed to open /proc/cmdline\n");
++		return;
++	}
++
++	r = read(fd, cmdline, sizeof(cmdline) - 1);
++	cmdline[r] = '\0';
++	close(fd);      
++	regcomp(&pat_cmdline, "PROD=([0-2])", 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]);
++	}
+ 
+ 	if (!fp) {
+ 		ERROR("Failed to open %s: %m\n", tab);
+--- a/rcS.c
++++ b/rcS.c
+@@ -34,6 +34,7 @@
+ #include "rcS.h"
+ 
+ static struct runqueue q, r;
++extern int production_mode;
+ 
+ struct initd {
+ 	struct ustream_fd fd;
+@@ -172,7 +173,17 @@ static int _rc(struct runqueue *q, char
+ 	}
+ 
+ 	for (j = 0; j < gl.gl_pathc; j++)
++	{
++		if (strstr(gl.gl_pathv[j], "prod_init")) {
++			if (production_mode) {
++				add_initd(q, gl.gl_pathv[j], param);
++				break;
++			} else {
++				continue;
++			}
++		}
+ 		add_initd(q, gl.gl_pathv[j], param);
++	}
+ 
+ 	globfree(&gl);
+ 
