чување 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:
измењених датотека: 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