summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2021-02-22 14:09:47 +0100
committerRobert Günzler <r@gnzler.io>2021-04-26 02:09:44 +0200
commit00adb97bd818f204c076a63ed9ac4592b080d662 (patch)
treed3d424d9c1507322a58224eac0ad24c2bf23297d /bin
parent3719d8bd4db5eb823455c44deef84ca52dd486cb (diff)
add bin/once
Diffstat (limited to 'bin')
-rwxr-xr-xbin/once30
1 files changed, 30 insertions, 0 deletions
diff --git a/bin/once b/bin/once
new file mode 100755
index 0000000..f13aecc
--- /dev/null
+++ b/bin/once
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -e
+[ -n "$DEBUG" ] && set -x
+
+ssd_args="--background --make-pidfile --start"
+while getopts Kkl:h opt; do
+	case "$opt" in
+	K|k)   ssd_args='--stop';;
+	l)     ssd_args="${ssd_args} --stdout ${OPTARG} --stderr ${OPTARG}";;
+
+	h)
+		printf "usage: %s [-h]\n" "$(basename "$0")"
+		printf "\n"
+		printf "  -K -k          kill the service\n"
+		printf "     -l LOGFILE  log to a file\n"
+		printf "\n"
+		exit 2 ;;
+	esac
+done
+shift $((OPTIND - 1))
+
+exec="${1:-}"
+[ -z "${exec}" ] && exit 1
+shift
+
+start-stop-daemon \
+	--pidfile "${XDG_RUNTIME_DIR:-/tmp}/${exec}.pid" \
+	$ssd_args \
+	"${exec}" -- "${@}"