[systemd-devel] How to compute a value for a service argument or environment value?
Alan Stern
stern at rowland.harvard.edu
Thu Mar 13 11:37:54 PDT 2014
This question has probably been asked many times before, but I didn't
see it mentioned anywhere on the systemd web site.
I want to create a unit file for a service where the server program
requires an argument or environment value that has to be computed at
run time; it isn't known in advance. For example, suppose the server
requires the numeric UID value corresponding to some particular
username, passed as an argument or an environment value.
In a SysV-type shell script, I could simply do:
exec /path/to/server_program `id -u username`
or
export USERID=`id -u username`
exec /path/to/server_program
Neither of these is possible in a systemd service unit file. So what
is the best way to accomplish the same result?
All I have been able to think of is to have ExecStart= run a shell
script that computes the necessary values and then execs the actual
server program. Is there a better way?
Alan Stern
More information about the systemd-devel
mailing list