Hello, I've been trying to figure out how the same specifier, particularly %H, is resolved in Environment= and ExecStart=. For that I use a VM with Centos 7 that has systemd v219 (from systemd-219-78.el7_9.2.x86_64 rpm), and a consul-template binary, that starts as systemd service.
The system unit of the latter is quite simple: ... [Service] ... Environment=HOSTNAME=%H ExecStart=/usr/bin/env HOSTNAME=%H /usr/bin/consul-template $CMD_OPTS ... After the VM has booted that process has the following: $ hostname vm-0005 $ sudo systemctl show consul-template | grep -E 'Environment|ExecStart' ExecStart={ path=/usr/bin/env ; argv[]=/usr/bin/env HOSTNAME=%H /usr/bin/consul-template $CMD_OPTS ; ignore_errors=no ; start_time=[Wed 2021-02-03 21:43:37 UTC] ; stop_time=[n/a] ; pid=1198 ; code=(null) ; status=0/0 } Environment=HOSTNAME=vm-0004 EnvironmentFile=/etc/sysconfig/consul-template (ignore_errors=no) $ sudo grep -aoE 'HOSTNAME=[-a-z0-9]+' /proc/$(pidof consul-template)/environ HOSTNAME=vm-0005 HOSTNAME=vm-0004 was set on a previous VM, that was used to create an image for vm-0005. >From all of that I have guess that expansion of the same specifier happens at >different point in time for Environment= and for ExecStart=. Unfortunately, I >could not find any references about that in the documentation. If I edit that >system unit or reload systemd, Environment= will have HOSTNAME=vm-0005 value. Could you please explain how the same specifier is resolved in different directives? Thank you. -- Kind regards, R
_______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel