[systemd-devel] [PATCH] printf specifiers %u and %h: $USER and $HOME.

Lennart Poettering lennart at poettering.net
Mon Jul 16 03:47:13 PDT 2012


On Fri, 13.07.12 22:28, Auke Kok (auke-jan.h.kok at intel.com) wrote:

> These printf specifiers allow us to refer to $HOME and $USER
> in unit files. These are particularly helpful in instanced
> units that have "User=" set, and in systemd --user domains.
> 
> The specifiers will return the pw_name and pw_dir fields
> if the unit file has a User= field.
> 
> If the unit file does not have a User= field, the value
> substituted is either $USER or $HOME from the environment,
> or, if unset, the values from pw_name or pw_dir.
> 
> This patch is somewhat after Ran Benita's original patch,
> which didn't get merged. I've split up the 2 specifiers
> and extended them to do what is logically expected from
> these specifiers.
> 
> Note that expansion is done at `start` time, not after
> the units are parsed. Using `systemctl show` will just
> show the specifiers.

Applied, but modified it to use the new getusername_malloc() and
get_home_dir() that I added, too. Also made a couple of minor other
changes and added %s for the user shell as discussed. Please test!

Thanks,

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the systemd-devel mailing list