If foo@bar.service symlink is present, it is impossible to enable it:

bor@opensuse:~> ll /run/systemd/system
итого 8
lrwxrwxrwx 1 root root   32 авг 18 21:06 foo@bar.service -> 
/run/systemd/system/foo@.service
-rwxr-xr-x 1 root root 1032 авг 18 21:06 foo@.service
bor@opensuse:~> sudo systemctl enable foo@bar.service
Failed to issue method call: No such file or directory
bor@opensuse:~> 

The problem is, unit_file_search() is called with allow_symlink=false
when used in enable codepath, which means that every attempt to open
will end up wither in ELOOP or ENOENT. At the end it exits with the
last error (ENOENT in this case, but this obviously depends on in which
directory symlink is created).

Is it really intentional? I'm actually all for disallowing such
symlinks :) but in this case at least meaningful error message is
required.
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to