PKGBUILDs/extra/memcached/memcached.sh
2009-10-09 21:23:22 -05:00

63 lines
1.2 KiB
Bash

#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/memcached
PIDFILE='/var/run/memcached.pid'
getpid() {
local pid
pid=$(cat $PIDFILE 2>/dev/null)
# if the process is no longer valid, don't return it
if [ -n "$pid" ]; then
if ! ps -p $pid >/dev/null; then
rm -f $PIDFILE
pid=""
fi
fi
echo $pid
}
PID="$(getpid)"
case "$1" in
start)
stat_busy "Starting memcached"
# memcached is retarded and doesn't write to the pidfile
# before it drops permissions
if [ -n "$PID" ]; then
stat_fail
elif [ -z "$MEMCACHED_USER" ]; then
echo "MEMCACHED_USER must be defined in /etc/conf.d/memcached"
stat_fail
else
touch $PIDFILE && chown $MEMCACHED_USER $PIDFILE
/usr/bin/memcached -d -P $PIDFILE -u $MEMCACHED_USER $MEMCACHED_ARGS
if [ $? -gt 0 ]; then
stat_fail
else
add_daemon memcached
stat_done
fi
fi
;;
stop)
stat_busy "Stopping memcached"
[ ! -z "$PID" ] && kill $PID &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
rm -f $PIDFILE
rm_daemon memcached
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac