svc

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

чување 84396b59d8824df4314ad01acca6bb189d63c597
родитељ fbeb0ee6078a832f34e7dba737661aec6af46b37
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Mon, 18 Jul 2022 14:03:49 +0200

Tweaks; relegate -r to bare.sh and avail scripts

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

Diffstat:
Mbin/svc | 25+++++++------------------
Msvc.d/bare.sh | 11+++++++++++
измењених датотека: 2, додавања: 18(+), брисања: 18(-)

diff --git a/bin/svc b/bin/svc @@ -29,7 +29,7 @@ runservice() { dir="$2" cmd="$3" - if [ $(stat -t "${dir}/${service}" | cut -d' ' -f 2) -eq 0 ]; + if [ $(stat -L -t "${dir}/${service}" | cut -d' ' -f 2) -eq 0 ]; then "./bare.sh" "${service}" "${cmd}" >/dev/null 2>&1 exit $? @@ -47,15 +47,15 @@ doservice() { then for s in $(find run -type l); do - runservice "${s##*/}" run "$cmd" + runservice "${s##*/}" run "${cmd}" done else - if [ -x "avail/$service" ]; + if [ -x "avail/${service}" ]; then - runservice "$service" avail "$cmd" + runservice "${service}" avail "${cmd}" else printf "%s: '%s' is not available or executable.\n" \ - "$BASENAME" "$service" >&2 + "${BASENAME}" "${service}" >&2 exit 2 fi fi @@ -66,7 +66,7 @@ case "$1" in then ln -sf "../avail/$2" "run/$2" printf "%s: '%s' activated.\n" \ - "$BASENAME" "$2" + "${BASENAME}" "$2" else cd run ls . @@ -85,21 +85,10 @@ case "$1" in "$BASENAME" >&2 exit 2 fi;; - -e|-k|-s) + -e|-k|-s|-r) doservice "$1" "$2";; -l) cd avail ls .;; - -r) if [ $# -gt 1 ]; - then - #set -x - svc -k "$2" || exit $? - svc -s "$2" - exit $? - else - printf "%s: please give a service name.\n" \ - "$BASENAME" >&2 - exit 2 - fi;; *) usage exit 2;; esac diff --git a/svc.d/bare.sh b/svc.d/bare.sh @@ -51,5 +51,16 @@ case $1 in fi exit 0 fi;; + -r) if [ -n "${PID}" ]; then + kill "${PID}" >/dev/null 2>&1 + if ps -p "${PID}" >/dev/null 2>&1; then + kill -9 "${PID}" >/dev/null 2>&1 || exit 2 + fi + fi + ${BIN} ${PARAMS} & + if ! ps -p $! >/dev/null 2>&1; then + exit 2 + fi + exit 0;; *) exit 2;; esac