diff options
Diffstat (limited to 'bin/once')
| -rwxr-xr-x | bin/once | 30 |
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}" -- "${@}" |