Skip to content

Instantly share code, notes, and snippets.

@rynop
Created April 11, 2011 20:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rynop/914243 to your computer and use it in GitHub Desktop.
Save rynop/914243 to your computer and use it in GitHub Desktop.
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
#make a memcache daemon.
function makememcached {
DNAME=memcached_$1
DPORT=$2
MEM_SIZE=$3
if [ -e /etc/init.d/$DNAME ]; then
echo "/etc/init.d/$DNAME already exists"
return 0
fi
cp /etc/init.d/memcached /etc/init.d/$DNAME
sed -i -e "s/^# Provides:.*$/# Provides: $DNAME/g" /etc/init.d/$DNAME
sed -i -e "s/^# Provides:.*$/# Provides: $DNAME/g" /etc/init.d/$DNAME
sed -i -e "s/^NAME=.*$/NAME=$DNAME/g" /etc/init.d/$DNAME
sed -i -e "s/^DESC=.*$/DESC=$DNAME/g" /etc/init.d/$DNAME
sed -i -e "s|^DAEMONBOOTSTRAP=.*$|DAEMONBOOTSTRAP=/usr/share/memcached/scripts/start-$DNAME|g" /etc/init.d/$DNAME
cp /etc/memcached.conf /etc/$DNAME.conf
sed -i -e "s/^-p 11211.*$/-p $DPORT/g" /etc/$DNAME.conf
sed -i -e "s/memcached.log/$DNAME.log/g" /etc/$DNAME.conf
sed -i -e "s/^-m .*$/-m $MEM_SIZE/g" /etc/$DNAME.conf
cp /usr/share/memcached/scripts/start-memcached /usr/share/memcached/scripts/start-$DNAME
sed -i -e "s/memcached.conf/$DNAME.conf/g" /usr/share/memcached/scripts/start-$DNAME
sed -i -e "s/memcached.pid/$DNAME.pid/g" /usr/share/memcached/scripts/start-$DNAME
update-rc.d $DNAME defaults > /dev/null 2>&1
/etc/init.d/$DNAME restart
}
#fix memcache server bug
sed -i -e 's|status_of_proc.*|status_of_proc -p $PIDFILE $DAEMON $NAME|g' /etc/init.d/memcached
/etc/init.d/memcached restart
#now create memcache obj cache server for DAS Production
#1st param is the name of the init.d, 2nd is port to listen on, 3rd is size of pool in megs
makememcached "memcache_staging" "<port>" "3"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment