чување 18312868716806b388efcccd893d5ba5a19e805a родитељ 32516ced58ec1f2772e56ccfdac6bd42d0ae5db8 Аутор: Страхиња Радић <contact@strahinja.org> Датум: Sun, 24 Jul 2022 14:12:26 +0200 Add dropbear; change how services with pidfiles are handled Signed-off-by: Страхиња Радић <contact@strahinja.org> Diffstat:
| A | svc.d/avail/dropbear | | | 45 | +++++++++++++++++++++++++++++++++++++++++++++ |
| M | svc.d/avail/sdhcp | | | 24 | ++++++++++++++---------- |
| A | svc.d/default/dropbear | | | 2 | ++ |
измењених датотека: 3, додавања: 61(+), брисања: 10(-)
diff --git a/svc.d/avail/dropbear b/svc.d/avail/dropbear @@ -0,0 +1,45 @@ +#!/bin/sh + +svc=dropbear +svcbin=/bin/dropbear + +. /bin/svc.d/default/${svc} + +PID='' +if [ -z "${PIDFILE}" ]; then + exit 2 +elif [ -e "${PIDFILE}" ]; then + PID=$(< "${PIDFILE}") +fi + +case $1 in + -e) if [ -z "${PID}" ]; then + exit 2 + elif [ -z "$(ps -ef | awk '{print $2}' | \ + grep "${PID}")" ]; then + exit 2 + fi;; + -s) svc -e ${svc} + case $? in + 0) exit 1;; + 2) ${svcbin} ${PARAMS} >/dev/null 2>&1 &;; + *) ;; + esac;; + -k) svc -e ${svc} + case $? in + 2) exit 1;; + 0) kill "${PID}" >/dev/null 2>&1 + if [ -n "$(ps -ef | awk '{print $2}' | \ + grep "${PID}")" ] + then + kill -9 "${PID}" >/dev/null \ + 2>&1 || exit 2 + fi + rm "${PIDFILE}" 2>/dev/null + exit 0;; + *) ;; + esac;; + -r) svc -k ${svc} + svc -s ${svc};; + *) exit 2;; +esac diff --git a/svc.d/avail/sdhcp b/svc.d/avail/sdhcp @@ -5,35 +5,39 @@ svcbin=/bin/sdhcp . /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) svc -e ${svc} case $? in - 0) return 1;; + 0) exit 1;; 2) ${svcbin} ${PARAMS} >/dev/null 2>&1 &;; - *) return $?;; + *) ;; esac;; -k) svc -e ${svc} case $? in - 2) return 1;; - 0) kill $(<"${PIDFILE}") >/dev/null 2>&1 + 2) exit 1;; + 0) kill "${PID}" >/dev/null 2>&1 if [ -n "$(ps -ef | awk '{print $2}' | \ - grep $(<"${PIDFILE}"))" ] + grep "${PID}")" ] then - kill -9 $(<"${PIDFILE}") >/dev/null \ + kill -9 "${PID}" >/dev/null \ 2>&1 || exit 2 fi - rm "${PIDFILE}";; - *) return $?;; + rm "${PIDFILE}" 2>/dev/null + exit 0;; + *) ;; esac;; -r) svc -k ${svc} svc -s ${svc};; diff --git a/svc.d/default/dropbear b/svc.d/default/dropbear @@ -0,0 +1,2 @@ +PARAMS="-r /etc/dropbear/dropbear_rsa_host_key -w -a" +PIDFILE=/var/run/dropbear.pid