From 44c5b770ab11d0020cd6fff8936215d627d483e9 Mon Sep 17 00:00:00 2001 From: Randy Witt Date: Fri, 21 Jun 2013 00:12:57 -0400 Subject: systemctl: Support all unit types in the directives. The Alias and WantedBy directives can accept all valid unit types when using the systemctl from systemd. And since the systemctl script should match the behavior of systemd as much as possible, add the current set of unit types listed at http://www.freedesktop.org/software/systemd/man/systemd.unit.html to the Alias and WantedBy directives. The deficiency was exposed when trying to use: Alias=default.target in a foo.target. No symlink was created by running "systemctl enable foo.target" during the package's postinst. (From OE-Core rev: 374b9c37b3310cf2a3373633197ca7ba21f6d1bd) Signed-off-by: Randy Witt Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- meta/recipes-core/systemd/systemd-systemctl/systemctl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'meta/recipes-core/systemd') diff --git a/meta/recipes-core/systemd/systemd-systemctl/systemctl b/meta/recipes-core/systemd/systemd-systemctl/systemctl index 8abbdf6938..f7866565b9 100755 --- a/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/meta/recipes-core/systemd/systemd-systemctl/systemctl @@ -77,10 +77,14 @@ for service in $services; do fi echo "Found $service in $service_file" + # If any new unit types are added to systemd they should be added + # to this regular expression. + unit_types_re='\.\(service\|socket\|device\|mount\|automount\|swap\|target\|path\|timer\|snapshot\)$' + # create the required symbolic links wanted_by=$(sed '/^WantedBy[[:space:]]*=/s,[^=]*=,,p;d' "$ROOT/$service_file" \ | tr ',' '\n' \ - | grep '\(\.target$\)\|\(\.service$\)') + | grep "$unit_types_re") for r in $wanted_by; do echo "WantedBy=$r found in $service" @@ -98,7 +102,7 @@ for service in $services; do # create the required symbolic 'Alias' links alias=$(sed '/^Alias[[:space:]]*=/s,[^=]*=,,p;d' "$ROOT/$service_file" \ | tr ',' '\n' \ - | grep '\.service$') + | grep "$unit_types_re") for r in $alias; do if [ "$action" = "enable" ]; then -- cgit v1.2.3-54-g00ecf