[Initng-svn] r4390 - initng/trunk/plugins/service_file

svn at initng.thinktux.net svn at initng.thinktux.net
Wed Jun 7 12:49:44 CEST 2006


Author: jimmy
Date: Wed Jun  7 12:49:43 2006
New Revision: 4390

Modified:
   initng/trunk/plugins/service_file/initng_service_file.c

Log:
Add NAME env.


Modified: initng/trunk/plugins/service_file/initng_service_file.c
==============================================================================
--- initng/trunk/plugins/service_file/initng_service_file.c	(original)
+++ initng/trunk/plugins/service_file/initng_service_file.c	Wed Jun  7 12:49:43 2006
@@ -788,22 +788,30 @@
 	if (initng_fork(new_active, process) == 0)
 	{
 		char *new_argv[3];
-		char *new_env[3];
+		char *new_env[4];
 		new_argv[0] = file;
 		new_argv[1] = i_strdup("internal_setup");
 		new_argv[2] = NULL;
 		
-		/* SERVICE=name */
+		/* SERVICE=getty/tty1 */
 		new_env[0] = i_calloc(strlen(name) + 20, sizeof(char));
 		strcpy(new_env[0], "SERVICE=");
 		strcat(new_env[0], name);
 		
-		/* SERVICE_FILE=file */
+		/* SERVICE_FILE=/etc/init/getty */
 		new_env[1] = i_calloc(strlen(file) + 20, sizeof(char));
 		strcpy(new_env[1], "SERVICE_FILE=");
 		strcat(new_env[1], name);
 	
-		new_env[2]=NULL;
+		/* NAME=tty1 */
+		{
+			char * tmp = strrchr(name, '/') + 1;
+			new_env[2] = i_calloc(strlen(tmp ? tmp : name) + 20, sizeof(char));
+			strcpy(new_env[2], "NAME=");
+			strcat(new_env[2], tmp ? tmp : name);
+		}
+	
+		new_env[3]=NULL;
 		execve(new_argv[0], new_argv, new_env);
 		_exit(10);
 	}


More information about the Initng-svn mailing list