79 lines
2.1 KiB
Plaintext
79 lines
2.1 KiB
Plaintext
#!/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: redissentinel_<%=@name%>
|
|
# Required-Start:
|
|
# Required-Stop:
|
|
# Should-Start:
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description:
|
|
# Description: redissentinel_<%=@name%> init script
|
|
### END INIT INFO
|
|
|
|
SENTINELNAME=<%= @name %>
|
|
<% case @platform %>
|
|
<% when 'ubuntu','debian','fedora' %>
|
|
EXEC="su -s /bin/sh -c '<%= File.join(@bin_path, 'redis-server') %> <%= @configdir %>/${SENTINELNAME}.conf --sentinel' <%= @user %>"
|
|
<% else %>
|
|
EXEC="runuser <%= @user %> -c \"<%= File.join(@bin_path, 'redis-server') %> <%= @configdir %>/${SENTINELNAME}.conf --sentinel\""
|
|
<% end %>
|
|
CLIEXEC=<%= File.join(@bin_path, 'redis-cli') %>
|
|
|
|
|
|
PIDFILE=<%= @piddir %>/${SENTINELNAME}.pid
|
|
|
|
if [ ! -d <%= @piddir %> ]; then
|
|
mkdir -p <%= @piddir %>
|
|
chown <%= @user %> <%= @piddir %>
|
|
fi
|
|
|
|
case "$1" in
|
|
status)
|
|
if [ -f $PIDFILE ]
|
|
then
|
|
echo "redis$SENTINELNAME $PIDFILE exists, pid is $(cat $PIDFILE), should be running"
|
|
ps -p $(cat $PIDFILE) >/dev/null 2>&1
|
|
exit $?
|
|
else
|
|
echo "redis$SENTINELNAME $PIDFILE doesn't exist"
|
|
exit 3
|
|
fi
|
|
;;
|
|
start)
|
|
if [ -f $PIDFILE ]
|
|
then
|
|
echo "$PIDFILE exists, process is already running or crashed"
|
|
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 ..."
|
|
|
|
kill ${PID}
|
|
|
|
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
|