xwords/xwords4/relay/xwrelay.sh

64 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/sh
DIR=${DIR:-$(dirname $0)}
XWRELAY=${DIR}/xwrelay
PIDFILE=${DIR}/xwrelay.pid
CONFFILE=${DIR}/xwrelay.conf
IDFILE=${DIR}/nextid.txt
LOGFILE=/tmp/xwrelay_log.txt
#LOGFILE=/dev/null
date > $LOGFILE
do_start() {
if [ -f $PIDFILE ] && [ -f /proc/$(cat $PIDFILE)/exe ]; then
echo "already running: pid=$(cat $PIDFILE)" | tee -a $LOGFILE
elif pidof xwrelay >/dev/null; then
echo "already running: pid=$(pidof xwrelay)" | tee -a $LOGFILE
else
echo "starting..." | tee -a $LOGFILE
echo "running $XWRELAY $@ -f $CONFFILE" | tee -a $LOGFILE
$XWRELAY $@ -f $CONFFILE -i $IDFILE &
NEWPID=$!
echo $NEWPID > $PIDFILE
sleep 1
echo "running with pid=$(cat $PIDFILE)" | tee -a $LOGFILE
fi
}
case $1 in
stop)
shift
if [ -f $PIDFILE ] && [ -f /proc/$(cat $PIDFILE)/exe ]; then
sync
echo "killing pid=$(cat $PIDFILE)" | tee -a $LOGFILE
kill $(cat $PIDFILE)
else
echo "not running or $PIDFILE not found" | tee -a $LOGFILE
PID=$(pidof xwrelay || true)
if [ "x${PID}" != "x" ]; then
echo "maybe it's $PID; killing them" | tee -a $LOGFILE
kill $PID
fi
fi
rm -f $PIDFILE
;;
restart)
shift
$0 stop
sleep 1
$0 start $@
;;
start)
shift
do_start $@
;;
*)
do_start $@
;;
esac