mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-05-06 16:58:24 +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
13
meta-oe/recipes-core/systemd/systemd-systemctl-native.bb
Normal file
13
meta-oe/recipes-core/systemd/systemd-systemctl-native.bb
Normal file
@@ -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}
|
||||
}
|
||||
51
meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl
Executable file
51
meta-oe/recipes-core/systemd/systemd-systemctl-native/systemctl
Executable file
@@ -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