diff options
author | Karel Kočí <cynerd@email.cz> | 2017-04-08 21:56:30 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2017-04-08 21:56:30 +0200 |
commit | 3b15d8dcd8912825281367ed959d7ad212e6a0ab (patch) | |
tree | 3424d6ae34c3da6dc7303d1a36cf8573d2ac1c54 /local/sbin/user-service.sh | |
parent | 8d39ed9e2804c6c9ed42aa685f6eb2f7c38fbbea (diff) | |
download | myconfigs-3b15d8dcd8912825281367ed959d7ad212e6a0ab.tar.gz myconfigs-3b15d8dcd8912825281367ed959d7ad212e6a0ab.tar.bz2 myconfigs-3b15d8dcd8912825281367ed959d7ad212e6a0ab.zip |
Add user services
Diffstat (limited to 'local/sbin/user-service.sh')
-rwxr-xr-x | local/sbin/user-service.sh | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/local/sbin/user-service.sh b/local/sbin/user-service.sh new file mode 100755 index 0000000..e48bb9d --- /dev/null +++ b/local/sbin/user-service.sh @@ -0,0 +1,90 @@ +#!/bin/sh +set -e + +[ -z "$1" ] && {echo "Run this script only from user-service file!" && exit 1} + +# Name of service +NAME="$(basename "$1")" +SERVICE="$1" + +# Source input file +. "$1" +shift + +OP="status" +Q=true +# Parse arguments +while [ -n "$1" ]; do + case "$1" in + -h|--help) + echo "User service: $NAME" + echo " $description" + echo "$SERVICE [OPTION]... OPERATION" + echo " Options:" + echo " -q - be quiet" + echo " Operations:" + echo " status - show status of service" + echo " start - start service" + echo " stop - stop service" + echo " restart - restart service" + ;; + -q) + Q=false + ;; + status|start|stop|restart) + OP="$1" + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac + shift +done + +case "$OP" in + status) + if status; then + $Q && echo "Service $NAME is running" + exit 0 + else + $Q && echo "Service $NAME is not running" + exit 1 + fi + ;; + start) + $Q && echo -n "Starting service $NAME..." + if start; then + $Q && echo " ok" + else + $Q && echo " fail" + exit 1 + fi + ;; + stop) + $Q && echo -n "Stopping service $NAME..." + if stop; then + $Q && echo " ok" + else + $Q && echo " fail" + exit 1 + fi + ;; + restart) + $Q && echo "Restarting service $NAME..." + if ! stop; then + $Q && echo " stop failed" + exit 1 + fi + if start; then + $Q && echo " ok" + else + $Q && echo " start failed" + exit 1 + fi + ;; + *) + echo "Invalid operation!" + exit 3 + ;; +esac |