[systemd-devel] Shell expressions in EnvironmentFile

Simon Peeters peeters.simon at gmail.com
Tue Oct 7 10:18:11 PDT 2014


2014-10-07 19:12 GMT+02:00 Jon Stanley <jonstanley at gmail.com>:
> Since EnvironmentFile in a service isn't sourced by any shell, shell
> expressions in it will obviously not work the way that they did in a
> SysV style script.
>
> Nor does it seems that the environment gets preserved between
> ExecStartPre (where one could run a script that sets environment
> variables to be later used in the starting of the service) and
> ExecStart, so something like the following won't work:

Which is logical since no system exists to modify the environment of
the parent proces.

> [Service]
> ExecStartPre=/something/that/sets/var
> ExecStart=/some/file $var

ExecStart=/bin/sh -c ". /something/that/sets/var; /some/file $var"

in other words: If you want shell behaviour, use a shell.

> Is there some way to get dynamically determined data into the
> environment such that it can be passed to the daemon at start?


Simon Peeters


More information about the systemd-devel mailing list