чување ec9a4789890f97be24954888df1ee174a7d8a681
родитељ 7c865a28dae67b9f0c749caeac158c14e3623502
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Sun, 17 Jul 2022 18:09:58 +0200
Changes for galeb (mostly related to exit codes)
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
| M | bin/service | | | 26 | +++++++++++--------------- |
| M | bin/svc | | | 63 | +++++++++++++++++++++++++++------------------------------------ |
| M | svc.d/bare.sh | | | 35 | +++++++++++++++++++++-------------- |
измењених датотека: 3, додавања: 59(+), брисања: 65(-)
diff --git a/bin/service b/bin/service
@@ -1,29 +1,25 @@
#!/bin/sh
+# $?:
+# 0: OK
+# 1: Redundant
+# 2: Error
+
if [ $# -lt 2 ];
then
printf "usage: %s [start|stop|restart] service\n" "$(basename "$0")" \
>&2
- exit 1
+ exit 2
fi
cmd="$1"
service="$2"
case "$cmd" in
-sta*)
- svc -s "$service"
- ;;
-sto*)
- svc -k "$service"
- ;;
-r*)
- svc -r "$service"
- ;;
-*)
- printf "usage: %s [start|stop|restart] service\n" "$(basename "$0")" \
+sta*) svc -s "$service";;
+sto*) svc -k "$service";;
+r*) svc -r "$service";;
+*) printf "usage: %s [start|stop|restart] service\n" "$(basename "$0")" \
>&2
- exit 1
- ;;
+ exit 2;;
esac
-
diff --git a/bin/svc b/bin/svc
@@ -3,6 +3,11 @@
# See LICENSE file for license details.
#
+# $?:
+# 0: OK
+# 1: Redundant
+# 2: Error
+
BASEDIR="/bin/svc.d"
BASENAME="$(basename $0)"
@@ -11,7 +16,7 @@ cd $BASEDIR
usage() {
printf "usage: %s [-acdklrs] [service]\n" "$BASENAME" >&2
- exit 1
+ exit 2
}
if [ $# -lt 1 ];
@@ -42,26 +47,25 @@ doservice() {
for s in ${services};
do
runservice "$s" run "$cmd"
- printf "%s: '%s' %s.\n" \
- "$BASENAME" "$s" "$cmd"
+ #printf "%s: '%s' %s.\n" \
+ # "$BASENAME" "$s" "$cmd"
done
else
if [ -x "avail/$service" ];
then
runservice "$service" avail "$cmd"
- printf "%s: '%s' %s.\n" \
- "$BASENAME" "$service" "$cmd"
+ #printf "%s: '%s' %s.\n" \
+ # "$BASENAME" "$service" "$cmd"
else
printf "%s: '%s' is not available or executable.\n" \
"$BASENAME" "$service" >&2
- exit 1
+ exit 2
fi
fi
}
case "$1" in
- -a)
- if [ $# -gt 1 ] && [ -e "avail/$2" ];
+ -a) if [ $# -gt 1 ] && [ -e "avail/$2" ];
then
ln -sf "../avail/$2" "run/$2"
printf "%s: '%s' activated.\n" \
@@ -69,16 +73,12 @@ case "$1" in
else
cd run
ls .
- fi
- ;;
- -c)
- [ -d "$BASEDIR" ] || mkdir -p "$BASEDIR"
+ fi;;
+ -c) [ -d "$BASEDIR" ] || mkdir -p "$BASEDIR"
[ -d "$BASEDIR/avail" ] || mkdir -p "$BASEDIR/avail"
[ -d "$BASEDIR/default" ] || mkdir -p "$BASEDIR/default"
- [ -d "$BASEDIR/run" ] || mkdir -p "$BASEDIR/run"
- ;;
- -d)
- if [ $# -gt 1 ] && [ -e "run/$2" ];
+ [ -d "$BASEDIR/run" ] || mkdir -p "$BASEDIR/run";;
+ -d) if [ $# -gt 1 ] && [ -e "run/$2" ];
then
rm -f "run/$2"
printf "%s: '%s' deactivated.\n" \
@@ -86,30 +86,21 @@ case "$1" in
else
printf "%s: No service given or service is not marked as to run.\n" \
"$BASENAME" >&2
- exit 1
- fi
- ;;
- -k|-s)
- doservice "$1" "$2"
- ;;
- -l)
- cd avail
- ls .
- ;;
- -r)
- if [ $# -gt 1 ];
+ exit 2
+ fi;;
+ -k|-s) doservice "$1" "$2";;
+ -l) cd avail
+ ls .;;
+ -r) if [ $# -gt 1 ];
then
- set -x
+ #set -x
svc -k "$2"
svc -s "$2"
else
printf "%s: please give a service name.\n" \
"$BASENAME" >&2
- exit 1
- fi
- ;;
- *)
- usage
- ;;
+ exit 2
+ fi;;
+ *) usage
+ exit 2;;
esac
-
diff --git a/svc.d/bare.sh b/svc.d/bare.sh
@@ -1,17 +1,22 @@
#!/bin/sh
-[ $# -eq 0 ] && SERVICE="$0"
+# $?:
+# 0: OK
+# 1: Redundant
+# 2: Error
+
+[ $# -eq 0 ] && SERVICE="${0##*/}"
if [ $# -gt 0 ];
then
- SERVICE="$1"
+ SERVICE="${1##*/}"
shift 1
fi
[ -e "/bin/svc.d/default/$SERVICE" ] && . "/bin/svc.d/default/$SERVICE"
BIN=""
-for p in /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin;
+for p in /local/bin /bin /sucks/bin
do
if [ -x "$p/$SERVICE" ];
then
@@ -19,19 +24,21 @@ do
break
fi
done
-[ -z "$BIN" ] && exit 1
+[ -z "$BIN" ] && exit 2
PID=$(pidof -o %PPID $BIN)
case $1 in
- -s)
- [ -z "$PID" ] && $BIN $PARAMS;
- ;;
- -k)
- [ -n "$PID" ] && kill -9 $PID &> /dev/null;
- ;;
- *)
- echo "usage: $0 -s|-k"
- exit 1
+ -s) if [ -z "$PID" ]; then
+ $BIN $PARAMS
+ else
+ exit 1
+ fi;;
+ -k) kill $PID &> /dev/null
+ if [ -n "$PID" ]; then
+ kill -9 $PID &> /dev/null || exit 2
+ else
+ exit 2
+ fi;;
+ *) exit 2;;
esac
-