#!/bin/sh set -eu die() { echo "${0}:" "$@" >&2 exit 1 } : ${CATSITD_PIPE:='%%RUNDIR%%/catsitd.pipe'} quiet= while getopts 'c:q' opt; do case $opt in (c) CATSITD_PIPE=$OPTARG;; (q) quiet=q;; (?) exit 1;; esac done shift $((OPTIND - 1)) if ! test -p "${CATSITD_PIPE}"; then die "${CATSITD_PIPE} is not a named pipe" fi if ! test -w "${CATSITD_PIPE}"; then die "${CATSITD_PIPE} is not writable" 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 drop $(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 "$@" > "${CATSITD_PIPE}" test $quiet && exit sleep 0.1 tail /var/log/messages | grep catsitd