If I have a template unit foo@.service and I have a symlink in /etc/systemd/system/ foo-bar@.service -> /usr/lib/systemd/system/foo@.service
1) is adding a symbolic link like this supported? 2) is using %j inside foo@.service supported in this case (aka, allowed and it should work)? If then I start this alias with sudo systemctl start foo-bar@instance.service 3) what should %j expand to? (assuming 'yes' to 2) above). What I expect: 1) yes (I see symbolic links being used all over the place, so why not for a template unit where one uses an extra `-bar`?) 2) yes (seems kinda pointless not to (want to) support it) 3) it should always expand to 'bar' if the unit is started with `sudo systemctl start foo-bar@instance.service`. Carlo Wood PS [ In case someone wants to answer 'no' somewhere. The rationale of why this should work (why I need it) is as follows: /usr/lib/systemd/system/foo@.service is part of a package and may be updated when that packages is upgraded. It uses %j and %i where both values are user supplied: if a user needs some value of %j to work, they need to add a symbolic link in /etc/systemd/system/. If they make a copy instead of using a symbolic link, then that file will not be updated if the package is upgraded and the use of %j is pointless (might as well make that copy and then change it to use 'bar' everywhere). The package maintainer loses control over correct upgrades because they do not manage the copied files; other files of the same package are upgraded, but the copied files are not, leading to errors. The package maintainer also can't add a copy of foo@.service for every value of %j because 1) they don't know what value of %j the user needs, and 2) in that case the use of %j would be pointless (might as well replace the %j with whatever this copy is called). The ONLY reason that the use of %j seems useful is when it is used in combination with symbolic links. ]