чување d4ca6c16ba97a5f5a626ceb27b5862e7932f4901
родитељ 1866a36872d6513a140feb075b2a4bce7451df20
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Wed, 20 Jul 2022 12:15:51 +0200
Adjust avail/hwclock; add avail/metalog
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 3, додавања: 99(+), брисања: 10(-)
diff --git a/bin/svc b/bin/svc
@@ -11,7 +11,7 @@
# 2: Error
BASEDIR="/bin/svc.d"
-BASENAME="$(basename $0)"
+BASENAME="${0##*/}"
[ -d "$BASEDIR" ] || mkdir -p "$BASEDIR"
cd $BASEDIR
diff --git a/svc.d/avail/hwclock b/svc.d/avail/hwclock
@@ -1,15 +1,18 @@
#!/bin/sh
+. /etc/rc.conf
. /bin/svc.d/default/hwclock
+if [ -n "${TIMEZONE}" ]; then
+ TZ=:${TIMEZONE}
+ export TZ
+fi
+
case $1 in
- -s)
- ;;
- -k)
- hwclock --adjust $PARAMS
- ;;
- *)
- echo "usage: $0 -s|-k"
- exit 1
+ -e) ;; # one-shot
+ -s) hwclock -s ${PARAMS} >/dev/null 2>&1 || exit 2;;
+ -k) hwclock -w ${PARAMS} >/dev/null 2>&1 || exit 2;;
+ -r) exit 1;;
+ *) echo "usage: $0 -s|-k" >&2
+ exit 2
esac
-
diff --git a/svc.d/avail/metalog b/svc.d/avail/metalog
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+svc=metalog
+svcbin=/sucks/bin/metalog
+
+. /bin/svc.d/default/${svc}
+
+if [ -z "${PIDFILE}" ]; then
+ exit 2
+fi
+
+case $1 in
+ -e) if [ ! -e "${PIDFILE}" ]; then
+ exit 2
+ elif [ -z "$(ps -ef | awk '{print $2}' | \
+ grep $(<"${PIDFILE}"))" ]; then
+ exit 2
+ fi;;
+ -s) ${svcbin} ${PARAMS} >/dev/null 2>&1 &
+ tries=4
+ childpid=$(ps -ef | \
+ awk '{if ($3 = "1" && match($8, "'\
+${svcbin//\//\\\/}'")) 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, "'\
+${svcbin//\//\\\/}'")) print $2}')
+ done
+ echo "${childpid}" > "${PIDFILE}";;
+ -k) if [ ! -e "${PIDFILE}" ]; then
+ exit 1
+ elif [ -z "$(ps -ef | awk '{print $2}' | \
+ grep $(<"${PIDFILE}"))" ]
+ then
+ rm "${PIDFILE}"
+ exit 1
+ else
+ kill $(<"${PIDFILE}") >/dev/null 2>&1
+ if [ -n "$(ps -ef | awk '{print $2}' | \
+ grep $(<"${PIDFILE}"))" ]
+ then
+ pkill -9 $(<"${PIDFILE}") >/dev/null 2>&1 \
+ || exit 2
+ fi
+ rm "${PIDFILE}"
+ fi;;
+ -r) if [ -e "${PIDFILE}" ]; then
+ if [ -z "$(ps -ef | awk '{print $2}' | \
+ grep $(<"${PIDFILE}"))" ]
+ then
+ rm "${PIDFILE}"
+ else
+ kill $(<"${PIDFILE}") >/dev/null 2>&1
+ if [ -n "$(ps -ef | awk '{print $2}' | \
+ grep $(<"${PIDFILE}"))" ]
+ then
+ kill -9 $(<"${PIDFILE}") \
+ >/dev/null 2>&1 || exit 2
+ fi
+ rm "${PIDFILE}"
+ fi
+ fi
+ ${svcbin} ${PARAMS} >/dev/null 2>&1 &
+ tries=4
+ childpid=$(ps -ef | \
+ awk '{if ($3 = "1" && match($8, "'\
+${svcbin//\//\\\/}'")) 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, "'\
+${svcbin//\//\\\/}'")) print $2}')
+ done
+ echo "${childpid}" > "${PIDFILE}";;
+esac