From 3f79074a70a0476b0b66cbd374f2359cc9c09fb7 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Wed, 4 Apr 2012 12:32:54 +0000 Subject: systemd-systemctl-native: add support to disable services This adds support to disable services making possible to it to be done during rootfs generation. Signed-off-by: Otavio Salvador Signed-off-by: Koen Kooi --- .../systemd/systemd-systemctl-native/systemctl | 32 +++++++++++++++++----- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'meta-oe/recipes-core/systemd/systemd-systemctl-native') diff --git a/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl b/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl index b86f3cd742..c4a0a3fade 100755 --- a/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl +++ b/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl @@ -3,6 +3,7 @@ ROOT= # parse command line params +action= while [ $# != 0 ]; do opt="$1" @@ -10,17 +11,26 @@ while [ $# != 0 ]; do enable) shift + action="$opt" services="$1" - in_enable="1" + cmd_args="1" + shift + ;; + disable) + shift + + action="$opt" + services="$1" + cmd_args="1" shift ;; --root=*) ROOT=${opt##--root=} - in_enable="0" + cmd_args="0" shift ;; *) - if [ "$in_enable" = "1" ]; then + if [ "$cmd_args" = "1" ]; then services="$services $opt" shift else @@ -53,9 +63,15 @@ for service in $services; do | grep '\.target$') for r in $wanted_by; do - mkdir -p $ROOT/etc/systemd/system/$r.wants - ln -s $service_file $ROOT/etc/systemd/system/$r.wants - echo "Enabled $service for $wanted_by." + if [ "$action" = "enable" ]; then + mkdir -p $ROOT/etc/systemd/system/$r.wants + ln -s $service_file $ROOT/etc/systemd/system/$r.wants + echo "Enabled $service for $wanted_by." + else + rm -f $ROOT/etc/systemd/system/$r.wants/$service_file + rmdirs -p $ROOT/etc/systemd/system/$r.wants + echo "Disabled $service for $wanted_by." + fi done # call us for the other required scripts @@ -63,6 +79,8 @@ for service in $services; do | sed 's,Also=,,g' \ | tr ',' '\n') for a in $also; do - $0 --root=$ROOT enable $a + if [ "$action" = "enable" ]; then + $0 --root=$ROOT enable $a + fi done done -- cgit 1.2.3-korg