svc

Unnamed repository; edit this file 'description' to name the repository.
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 06da785cf532212ea26d5e3bdb1e4550d6d2deba
родитељ a291bd145028546ec2f3bd495c2b094612c7e32e
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Wed, 27 Jul 2022 10:30:43 +0200

Make all service scripts succeed on start only if service is started

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
Msvc.d/avail/dropbear | 6+++++-
Msvc.d/avail/metalog | 58+++++++++++++++++++++++++---------------------------------
Msvc.d/avail/sdhcp | 6+++++-
Msvc.d/bare.sh | 6+++++-
измењених датотека: 4, додавања: 40(+), брисања: 36(-)

diff --git a/svc.d/avail/dropbear b/svc.d/avail/dropbear @@ -22,7 +22,11 @@ case $1 in -s) svc -e ${svc} case $? in 0) exit 1;; - 2) ${svcbin} ${PARAMS} >/dev/null 2>&1 &;; + 2) ${svcbin} ${PARAMS} >/dev/null 2>&1 & + if [ -n "${STARTDELAY}" ]; then + /bin/usleep "${STARTDELAY}" + fi + svc -e ${svc};; *) ;; esac;; -k) svc -e ${svc} diff --git a/svc.d/avail/metalog b/svc.d/avail/metalog @@ -5,53 +5,45 @@ svcbin=/sucks/bin/metalog . /bin/svc.d/default/${svc} +PID='' if [ -z "${PIDFILE}" ]; then exit 2 +elif [ -e "${PIDFILE}" ]; then + PID=$(< "${PIDFILE}") fi case $1 in - -e) if [ ! -e "${PIDFILE}" ]; then + -e) if [ -z "${PID}" ]; then exit 2 elif [ -z "$(ps -ef | awk '{print $2}' | \ - grep $(<"${PIDFILE}"))" ]; then + grep "${PID}")" ]; then exit 2 fi;; - -s) $0 -e + -s) svc -e ${svc} case $? in + 0) exit 1;; 2) ${svcbin} ${PARAMS} >/dev/null 2>&1 & - tries=4 - childpid=$(ps -ef | \ - awk '{if ($3 == "1" && match($8, "'\ -${svc}'")) print $2}') - while [ -z "${childpid}" ] - do - /bin/usleep 100000 - tries=$((tries-1)) - if [ "${tries}" -eq 0 ]; then - exit 2 - fi - childpid=$(ps -ef | \ - awk '{if ($3 == "1" && match($8, "'\ -${svc}'")) print $2}') - done - echo "${childpid}" > "${PIDFILE}";; - *) exit 1;; + if [ -n "${STARTDELAY}" ]; then + /bin/usleep "${STARTDELAY}" + fi + svc -e ${svc};; + *) ;; esac;; - -k) $0 -e + -k) svc -e ${svc} case $? in - 0) kill $(<"${PIDFILE}") >/dev/null 2>&1 - if [ -e "${PIDFILE}" ] && \ - [ -n "$(ps -ef | awk '{print $2}' | \ - grep $(<"${PIDFILE}"))" ] + 2) exit 1;; + 0) kill "${PID}" >/dev/null 2>&1 + if [ -n "$(ps -ef | awk '{print $2}' | \ + grep "${PID}")" ] then - kill -9 $(<"${PIDFILE}") >/dev/null 2>&1 \ - || exit 2 + kill -9 "${PID}" >/dev/null \ + 2>&1 || exit 2 fi - if [ -e "${PIDFILE}" ]; then - rm "${PIDFILE}" - fi;; - *) exit 1;; + rm "${PIDFILE}" 2>/dev/null + exit 0;; + *) ;; esac;; - -r) $0 -k - $0 -s;; + -r) svc -k ${svc} + svc -s ${svc};; + *) exit 2;; esac diff --git a/svc.d/avail/sdhcp b/svc.d/avail/sdhcp @@ -22,7 +22,11 @@ case $1 in -s) svc -e ${svc} case $? in 0) exit 1;; - 2) ${svcbin} ${PARAMS} >/dev/null 2>&1 &;; + 2) ${svcbin} ${PARAMS} >/dev/null 2>&1 & + if [ -n "${STARTDELAY}" ]; then + /bin/usleep "${STARTDELAY}" + fi + svc -e ${svc};; *) ;; esac;; -k) svc -e ${svc} diff --git a/svc.d/bare.sh b/svc.d/bare.sh @@ -35,7 +35,11 @@ case $1 in -s) $0 "${SERVICE}" -e case $? in 0) return 1;; - 2) ${BIN} ${PARAMS} >/dev/null 2>&1 &;; + 2) ${BIN} ${PARAMS} >/dev/null 2>&1 & + if [ -n "${STARTDELAY}" ]; then + /bin/usleep "${STARTDELAY}" + fi + $0 "${SERVICE}" -e;; *) return $?;; esac;; -k) $0 "${SERVICE}" -e