svc

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

чување 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:
Mbin/svc | 2+-
Msvc.d/avail/hwclock | 21++++++++++++---------
Asvc.d/avail/metalog | 86+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
измењених датотека: 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