run-postinsts: Add systemd service file

This patch mainly adds a systmd service file for run-postinsts,
which is started at first boot to run the post-install scripts.

Apart from this, this patch also modifies the installation location
of run-postinsts to ${sbindir}. This is because this script would be
used by both sysvinit and systemd based images. So it's more reasonable
to make it locate under ${sbindir}.

[YOCTO #5719]

(From OE-Core rev: 5933fbef26ffbc8140248ffb28957f36a813054b)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2013-12-17 10:50:09 +00:00
committed by Richard Purdie
parent 78484bf45e
commit 79f2bb4742
3 changed files with 39 additions and 5 deletions

View File

@@ -0,0 +1,3 @@
#!/bin/sh
run-postinsts

View File

@@ -0,0 +1,17 @@
[Unit]
Description=Run pending postinsts
DefaultDependencies=no
After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount
Before=sysinit.target
ConditionPathExistsGlob=#SYSCONFDIR#/*-postinsts
[Service]
Type=oneshot
ExecStart=#SBINDIR#/run-postinsts
ExecStartPost=#BASE_BINDIR#/systemctl disable run-postinsts.service
RemainAfterExit=No
TimeoutSec=0
[Install]
WantedBy=basic.target
WantedBy=sysinit.target

View File

@@ -5,12 +5,16 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://run-postinsts"
SRC_URI = "file://run-postinsts \
file://run-postinsts.init \
file://run-postinsts.service"
inherit allarch systemd update-rc.d
INITSCRIPT_NAME = "run-postinsts"
INITSCRIPT_PARAMS = "start 99 S ."
inherit update-rc.d
SYSTEMD_SERVICE_${PN} = "run-postinsts.service"
do_configure() {
:
@@ -21,8 +25,18 @@ do_compile () {
}
do_install() {
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/run-postinsts ${D}${sysconfdir}/init.d/
install -d ${D}${sbindir}
install -m 0755 ${WORKDIR}/run-postinsts ${D}${sbindir}/
sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' ${D}${sysconfdir}/init.d/run-postinsts
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/run-postinsts.init ${D}${sysconfdir}/init.d/run-postinsts
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/run-postinsts.service ${D}${systemd_unitdir}/system/
sed -i -e 's:#SYSCONFDIR#:${sysconfdir}:g' \
-e 's:#SBINDIR#:${sbindir}:g' \
-e 's:#BASE_BINDIR#:${base_bindir}:g' \
${D}${sbindir}/run-postinsts \
${D}${systemd_unitdir}/system/run-postinsts.service
}