From d7f3991209334e7c9a724090cc819a246997da07 Mon Sep 17 00:00:00 2001 From: Isaac Hermida Date: Tue, 24 May 2022 09:38:59 +0200 Subject: [PATCH] cloudconnector: add init service Signed-off-by: Isaac Hermida Signed-off-by: David Escalona (cherry picked from commit ccc9211d00dad7be6cb2c2d0cf179a62563e26c6) --- .../cloudconnector/cloudconnector_git.bb | 27 ++++++++++- .../cloudconnector/files/cloud-connector-init | 46 +++++++++++++++++++ .../files/cloud-connector.service | 11 +++++ 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 meta-digi-dey/recipes-digi/cloudconnector/files/cloud-connector-init create mode 100644 meta-digi-dey/recipes-digi/cloudconnector/files/cloud-connector.service diff --git a/meta-digi-dey/recipes-digi/cloudconnector/cloudconnector_git.bb b/meta-digi-dey/recipes-digi/cloudconnector/cloudconnector_git.bb index 2bb792812..6d3960582 100644 --- a/meta-digi-dey/recipes-digi/cloudconnector/cloudconnector_git.bb +++ b/meta-digi-dey/recipes-digi/cloudconnector/cloudconnector_git.bb @@ -15,18 +15,41 @@ CC_GITHUB = "gitsm://github.com/digi-embedded/cc_dey.git;protocol=https" CC_GIT_URI ?= "${@oe.utils.conditional('DIGI_INTERNAL_GIT', '1' , '${CC_STASH}', '${CC_GITHUB}', d)}" -SRC_URI = "${CC_GIT_URI};branch=${SRCBRANCH}" +SRC_URI = " \ + ${CC_GIT_URI};branch=${SRCBRANCH} \ + file://cloud-connector-init \ + file://cloud-connector.service \ +" S = "${WORKDIR}/git" -inherit pkgconfig +inherit pkgconfig systemd update-rc.d do_install() { oe_runmake DESTDIR=${D} install + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + # Install systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/cloud-connector.service ${D}${systemd_unitdir}/system/ + fi + + install -d ${D}${sysconfdir}/init.d/ + install -m 755 ${WORKDIR}/cloud-connector-init ${D}${sysconfdir}/cloud-connector + ln -sf /etc/cloud-connector ${D}${sysconfdir}/init.d/cloud-connector } +INITSCRIPT_NAME = "cloud-connector" +SYSTEMD_SERVICE:${PN} = "cloud-connector.service" + PACKAGES =+ "${PN}-cert" +FILES:${PN} += " \ + ${systemd_unitdir}/system/cloud-connector.service \ + ${sysconfdir}/cloud-connector \ + ${sysconfdir}/init.d/cloud-connector \ +" + FILES:${PN}-cert = "${sysconfdir}/ssl/certs/Digi_Int-ca-cert-public.crt" CONFFILES:${PN} += "${sysconfdir}/cc.conf" diff --git a/meta-digi-dey/recipes-digi/cloudconnector/files/cloud-connector-init b/meta-digi-dey/recipes-digi/cloudconnector/files/cloud-connector-init new file mode 100644 index 000000000..f776aef9d --- /dev/null +++ b/meta-digi-dey/recipes-digi/cloudconnector/files/cloud-connector-init @@ -0,0 +1,46 @@ +#!/bin/sh +#=============================================================================== +# +# Copyright (C) 2022 by Digi International Inc. +# All rights reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. +# +# +# !Description: Initialize Cloud Connector service +# +#=============================================================================== + +# Source function library: status, pidofproc and killproc +. /etc/init.d/functions + +readonly CC_BINARY="/usr/bin/cloud-connector" +readonly STOP_TIMEOUT="5" + +case "$1" in + start) + status ${CC_BINARY} > /dev/null || ${CC_BINARY} -d > /dev/null 2>&1 + ;; + stop) + # try to stop gracefully + killproc ${CC_BINARY} >/dev/null 2>&1 + for i in $(seq ${STOP_TIMEOUT}); do + pid=$(pidofproc ${CC_BINARY}) || break + if [ "${i}" -eq ${STOP_TIMEOUT} ]; then + kill -KILL "${pid}" >/dev/null 2>&1 + fi + sleep 1 + done + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac diff --git a/meta-digi-dey/recipes-digi/cloudconnector/files/cloud-connector.service b/meta-digi-dey/recipes-digi/cloudconnector/files/cloud-connector.service new file mode 100644 index 000000000..5df91d30e --- /dev/null +++ b/meta-digi-dey/recipes-digi/cloudconnector/files/cloud-connector.service @@ -0,0 +1,11 @@ +[Unit] +Description=Cloud Connector service initialization +After=network.target + +[Service] +Type=forking +ExecStart=/etc/cloud-connector start +ExecStop=/etc/cloud-connector stop + +[Install] +WantedBy=multi-user.target