echoip/daemonize.sh

49 lines
1.1 KiB
Bash
Raw Normal View History

2012-11-21 13:51:23 +01:00
#!/usr/bin/env bash
NAME="ifconfig"
IFC_PATH=$(dirname $(readlink -f $0))
LOCK_FILE="$IFC_PATH/$NAME.lock"
PID_FILE="$IFC_PATH/$NAME.pid"
BIN="$IFC_PATH/$NAME"
E_USAGE=1
E_NOTFOUND=2
E_NOPID=3
E_LOCKED=4
if [[ ! -x "$BIN" ]]; then
echo "$BIN does not exist or is not executable"
exit $E_NOTFOUND
fi
case "$1" in
start)
if [[ -f "$LOCK_FILE" ]]; then
echo "Lock file $LOCK_FILE exists. Already running?"
exit $E_LOCKED
fi
echo "Starting $NAME"
daemonize -c $IFC_PATH -o ${NAME}.log -p $PID_FILE -l $LOCK_FILE $BIN
;;
stop)
if [[ ! -s "$PID_FILE" ]]; then
echo "PID file $PID_FILE empty or not found. Not started?"
exit $E_NOPID
fi
PID=$(head -n1 $PID_FILE)
echo "Stopping $NAME: $PID"
kill $PID && rm -- $PID_FILE $LOCK_FILE
;;
status)
if [[ ! -s "$PID_FILE" ]]; then
echo "$NAME is not running"
else
echo "$NAME is running: $(head -n1 $PID_FILE)"
fi
;;
*)
echo "usage: $0 {start|stop|status}"
exit $E_USAGE
;;
esac