#!/bin/sh set -eu die() { echo "${0}:" "$@" >&2 exit 1 } : ${SPAWND_PIPE:=/var/run/spawnd.pipe} while getopts 'c:' opt; do case "${opt}" in (c) SPAWND_PIPE=$OPTARG;; (?) exit 1;; esac done shift $((OPTIND - 1)) if ! [ -p "${SPAWND_PIPE}" ]; then die "${SPAWND_PIPE} is not a named pipe" fi [ $# -lt 1 ] && die 'action required' [ $# -lt 2 ] && die 'service name required' action=$(echo "${1}" | tr 'A-Z' 'a-z') for valid in start stop restart status $(kill -l | tr 'A-Z' 'a-z'); do [ "${action}" = "${valid}" ] && break done if [ "${action}" != "${valid}" ]; then die "${action} is not a valid action or signal" fi echo "$@" > "${SPAWND_PIPE}"