X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fservice.c;h=46d7bbb1c7b17774706dd43ef15f7be8b7194d68;hb=472ff3d64a870dcd767ecf61e07d89d8fb2f272d;hp=7a522bf3f47d865dde181fa2a33d16f014f5edb5;hpb=858dae181bb5461201ac1c04732d3ef4c67a0256;p=elogind.git diff --git a/src/service.c b/src/service.c index 7a522bf3f..46d7bbb1c 100644 --- a/src/service.c +++ b/src/service.c @@ -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,16 @@ static int service_spawn( goto fail; } +#ifdef HAVE_SYSV_COMPAT + /* 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; + } +#endif + if (!(final_env = strv_env_merge(2, s->meta.manager->environment, our_env,