Add new Redis cookbook
This commit is contained in:
96
cookbooks/redisio/templates/default/redis.init.erb
Normal file
96
cookbooks/redisio/templates/default/redis.init.erb
Normal file
@@ -0,0 +1,96 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Simple Redis init.d script conceived to work on Linux systems
|
||||
# as it does use of the /proc filesystem.
|
||||
#
|
||||
# description: Redis is an in memory key-value store database
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: redis<%= @port %>
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Required-Start: <%= @required_start %>
|
||||
# Required-Stop: <%= @required_stop %>
|
||||
# Description: redis<%= @port %> init script
|
||||
### END INIT INFO
|
||||
|
||||
REDISNAME=<%= @name %>
|
||||
REDISPORT=<%= @port %>
|
||||
<% case @platform %>
|
||||
<% when 'ubuntu','debian','fedora' %>
|
||||
EXEC="su -s /bin/sh -c '<%= File.join(@bin_path, 'redis-server') %> <%= @configdir %>/${REDISNAME}.conf' <%= @user %>"
|
||||
<% else %>
|
||||
EXEC="runuser <%= @user %> -c \"<%= File.join(@bin_path, 'redis-server') %> <%= @configdir %>/${REDISNAME}.conf\""
|
||||
<% end %>
|
||||
CLIEXEC=<%= File.join(@bin_path, 'redis-cli') %>
|
||||
|
||||
<% connection_string = String.new %>
|
||||
<% if @unixsocket.nil? %>
|
||||
<% connection_string << " -p #{@port}" %>
|
||||
<% connection_string << " -h #{@address.respond_to?(:first) ? @address.first : @address }" if @address %>
|
||||
<% else %>
|
||||
<% connection_string << " -s #{@unixsocket}" %>
|
||||
<% end %>
|
||||
<% connection_string << " -a '#{@requirepass}'" unless @requirepass.nil? %>
|
||||
|
||||
PIDFILE=<%= @piddir %>/redis_${REDISNAME}.pid
|
||||
|
||||
if [ ! -d <%= @piddir %> ]; then
|
||||
mkdir -p <%= @piddir %>
|
||||
chown <%= @user %> <%= @piddir %>
|
||||
fi
|
||||
|
||||
ulimit -n <%= @ulimit %>
|
||||
|
||||
case "$1" in
|
||||
status)
|
||||
if [ -f $PIDFILE ]
|
||||
then
|
||||
echo "redis$REDISNAME $PIDFILE exists, pid is $(cat $PIDFILE), should be running"
|
||||
ps -p $(cat $PIDFILE) >/dev/null 2>&1
|
||||
exit $?
|
||||
else
|
||||
echo "redis$REDISNAME $PIDFILE doesn't exist"
|
||||
exit 3
|
||||
fi
|
||||
;;
|
||||
start)
|
||||
if [ -f $PIDFILE ]
|
||||
then
|
||||
echo "$PIDFILE exists, process is already running or crashed"
|
||||
PIDNUM=`cat $PIDFILE`
|
||||
PROCESS_RUNNING=`ps --no-headers -q $PIDNUM | wc -l`
|
||||
if [ ! $PROCESS_RUNNING -eq 1 ]
|
||||
then
|
||||
echo "The PID doesn't exists, restarting it."
|
||||
rm $PIDFILE
|
||||
eval $EXEC
|
||||
fi
|
||||
else
|
||||
echo "Starting Redis server..."
|
||||
eval $EXEC
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
if [ ! -f $PIDFILE ]
|
||||
then
|
||||
echo "$PIDFILE does not exist, process is not running"
|
||||
else
|
||||
PID=$(cat $PIDFILE)
|
||||
echo "Stopping ..."
|
||||
|
||||
<%= "$CLIEXEC #{connection_string} save" if @shutdown_save %>
|
||||
$CLIEXEC <%= connection_string %> shutdown
|
||||
|
||||
while [ -x /proc/${PID} ]
|
||||
do
|
||||
echo "Waiting for Redis to shutdown ..."
|
||||
sleep 1
|
||||
done
|
||||
echo "Redis stopped"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Please use start or stop as first argument"
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user