[oe-commits] Otavio Salvador : systemd-systemctl-native: add support to disable services

git at git.openembedded.org git at git.openembedded.org
Wed Apr 4 18:41:59 UTC 2012


Module: meta-openembedded.git
Branch: master
Commit: 3f79074a70a0476b0b66cbd374f2359cc9c09fb7
URL:    http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=3f79074a70a0476b0b66cbd374f2359cc9c09fb7

Author: Otavio Salvador <otavio at ossystems.com.br>
Date:   Wed Apr  4 12:32:54 2012 +0000

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 <otavio at ossystems.com.br>
Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>

---

 .../systemd/systemd-systemctl-native.bb            |    2 +-
 .../systemd/systemd-systemctl-native/systemctl     |   32 +++++++++++++++----
 2 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/meta-oe/recipes-core/systemd/systemd-systemctl-native.bb b/meta-oe/recipes-core/systemd/systemd-systemctl-native.bb
index dcd67ee..78eb8f3 100644
--- a/meta-oe/recipes-core/systemd/systemd-systemctl-native.bb
+++ b/meta-oe/recipes-core/systemd/systemd-systemctl-native.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Wrapper to enable of systemd services"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
 
-PR = "r1"
+PR = "r2"
 
 inherit native
 
diff --git a/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl b/meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl
index b86f3cd..c4a0a3f 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





More information about the Openembedded-commits mailing list