chiark / gitweb /
service: make sure to pass TERM=linux to all sysv scripts
authorLennart Poettering <lennart@poettering.net>
Tue, 26 Oct 2010 00:32:42 +0000 (02:32 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 26 Oct 2010 00:32:42 +0000 (02:32 +0200)
src/service.c

index 7a522bf..dac4ada 100644 (file)
@@ -1568,7 +1568,7 @@ static int service_spawn(
                 goto fail;
         }
 
-        if (!(our_env = new0(char*, 3))) {
+        if (!(our_env = new0(char*, 4))) {
                 r = -ENOMEM;
                 goto fail;
         }
@@ -1585,6 +1585,14 @@ static int service_spawn(
                         goto fail;
                 }
 
+        /* Make sure we set TERM=linux for SysV scripts, since some
+         * require it to be set from the kernel */
+        if (s->sysv_path && !strv_env_get(s->meta.manager->environment, "TERM"))
+                if (!(our_env[n_env++] = strdup("TERM=linux"))) {
+                        r = -ENOMEM;
+                        goto fail;
+                }
+
         if (!(final_env = strv_env_merge(2,
                                          s->meta.manager->environment,
                                          our_env,