mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-01 01:30:23 +00:00
systemd-systemctl-native: add a systemctl wrapper
The wrapper allows for enabling services at rootfs generation thus allowing systemd to be used in ready-only filesystems. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
committed by
Koen Kooi
parent
7f5ca6706a
commit
79f35231a3
@@ -0,0 +1,13 @@
|
|||||||
|
DESCRIPTION = "Wrapper to enable of systemd services"
|
||||||
|
|
||||||
|
LICENSE = "MIT"
|
||||||
|
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
|
||||||
|
|
||||||
|
inherit native
|
||||||
|
|
||||||
|
SRC_URI = "file://systemctl"
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
install -d ${D}${bindir}
|
||||||
|
install -m 0755 ${WORKDIR}/systemctl ${D}${bindir}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
ROOT=
|
||||||
|
|
||||||
|
# parse command line params
|
||||||
|
while [ $# != 0 ]; do
|
||||||
|
opt="$1"
|
||||||
|
|
||||||
|
case "$opt" in
|
||||||
|
enable)
|
||||||
|
shift
|
||||||
|
|
||||||
|
service="$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--root=*)
|
||||||
|
ROOT=${opt##--root=}
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "'$opt' is an unkown option; exiting with error"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# find service file
|
||||||
|
for p in $ROOT/etc/systemd/system \
|
||||||
|
$ROOT/lib/systemd/system \
|
||||||
|
$ROOT/usr/lib/systemd/system; do
|
||||||
|
if [ -e $p/$service ]; then
|
||||||
|
service_file=$p/$service
|
||||||
|
service_file=${service_file##$ROOT}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -z "$service_file" ]; then
|
||||||
|
echo "'$service' couldn't be found; exiting with error"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create the required symbolic links
|
||||||
|
wanted_by=$(grep WantedBy $ROOT/$service_file \
|
||||||
|
| sed 's,WantedBy=,,g' \
|
||||||
|
| tr ',' '\n' \
|
||||||
|
| 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."
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user