From 5933fbef26ffbc8140248ffb28957f36a813054b Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 17 Dec 2013 10:50:09 +0000 Subject: 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] Signed-off-by: Chen Qi Signed-off-by: Saul Wold --- .../run-postinsts/run-postinsts/run-postinsts.init | 3 +++ .../run-postinsts/run-postinsts.service | 17 +++++++++++++++++ .../run-postinsts/run-postinsts_1.0.bb | 22 ++++++++++++++++++---- 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.init create mode 100644 meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service (limited to 'meta/recipes-devtools/run-postinsts') diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.init b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.init new file mode 100644 index 0000000000..473a1f7f6a --- /dev/null +++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.init @@ -0,0 +1,3 @@ +#!/bin/sh + +run-postinsts diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service new file mode 100644 index 0000000000..822327aadc --- /dev/null +++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts.service @@ -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 diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb index 03989ab536..64f85c262d 100644 --- a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb +++ b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb @@ -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}${sbindir} + install -m 0755 ${WORKDIR}/run-postinsts ${D}${sbindir}/ + install -d ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/run-postinsts ${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' ${D}${sysconfdir}/init.d/run-postinsts + 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 } -- cgit 1.2.3-korg