44 lines
		
	
	
		
			846 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			846 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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
 | 
