+++ /dev/null
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides: radosgw
-# Required-Start: $remote_fs $named $network $time
-# Required-Stop: $remote_fs $named $network $time
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: radosgw RESTful rados gateway
-# Description: radosgw RESTful rados gateway
-### END INIT INFO
-
-PATH=/sbin:/bin:/usr/bin
-
-if [ -x /sbin/start-stop-daemon ]; then
- DEBIAN=1
- . /lib/lsb/init-functions
-else
- . /etc/rc.d/init.d/functions
- DEBIAN=0
-fi
-
-daemon_is_running() {
- daemon=$1
- if pidof $daemon >/dev/null; then
- echo "$daemon is running."
- exit 0
- else
- echo "$daemon is not running."
- exit 1
- fi
-}
-
-VERBOSE=0
-for opt in $*; do
- if [ "$opt" = "-v" ] || [ "$opt" = "--verbose" ]; then
- VERBOSE=1
- fi
-done
-
-# prefix for radosgw instances in ceph.conf
-PREFIX='client.radosgw.'
-
-# user to run radosgw as (if not specified in ceph.conf)
-DEFAULT_USER='root'
-
-RADOSGW=`which radosgw`
-if [ ! -x "$RADOSGW" ]; then
- [ $VERBOSE -eq 1 ] && echo "$RADOSGW could not start, it is not executable."
- exit 1
-fi
-
-# list daemons, old-style and new-style
-# NOTE: no support for cluster names that aren't "ceph"
-dlist=`ceph-conf --list-sections $PREFIX`
-if [ -d "/var/lib/ceph/radosgw" ]; then
- for d in `ls /var/lib/ceph/radosgw | grep ^ceph-`; do
- if [ -e "/var/lib/ceph/radosgw/$d/sysvinit" ]; then
- id=`echo $d | cut -c 6-`
- dlist="client.$id $dlist"
- fi
- done
-fi
-
-case "$1" in
- start)
- for name in $dlist
- do
- auto_start=`ceph-conf -n $name 'auto start'`
- if [ "$auto_start" = "no" ] || [ "$auto_start" = "false" ] || [ "$auto_start" = "0" ]; then
- continue
- fi
-
- shortname=`echo $name | cut -c 8-`
- if [ ! -e "/var/lib/ceph/radosgw/ceph-$shortname/sysvinit" ]; then
- # mapped to this host?
- host=`ceph-conf -n $name host`
- hostname=`hostname -s`
- if [ "$host" != "$hostname" ]; then
- [ $VERBOSE -eq 1 ] && echo "hostname $hostname could not be found in ceph.conf:[$name], not starting."
- continue
- fi
- fi
-
- user=`ceph-conf -n $name user`
- if [ -z "$user" ]; then
- user="$DEFAULT_USER"
- fi
-
- log_file=`$RADOSGW -n $name --show-config-value log_file`
- if [ -n "$log_file" ]; then
- if [ ! -e "$log_file" ]; then
- touch "$log_file"
- fi
- chown $user $log_file
- fi
-
- echo "Starting $name..."
- if [ $DEBIAN -eq 1 ]; then
- start-stop-daemon --start -u $user -x $RADOSGW -p /var/run/ceph/client-$name.pid -- -n $name
- else
- ulimit -n 32768
- core_limit=`ceph-conf -n $name 'core file limit'`
- if [ -z $core_limit ]; then
- DAEMON_COREFILE_LIMIT=$core_limit
- fi
- daemon --user="$user" "$RADOSGW -n $name"
- fi
- done
- ;;
- reload)
- echo "Reloading $name..."
- if [ $DEBIAN -eq 1 ]; then
- start-stop-daemon --stop --signal HUP -x $RADOSGW --oknodo
- else
- killproc $RADOSGW -HUP
- fi
- ;;
- restart|force-reload)
- $0 stop
- $0 start
- ;;
- stop)
- timeout=0
- for name in $dlist
- do
- t=`$RADOSGW -n $name --show-config-value rgw_exit_timeout_secs`
- if [ $t -gt $timeout ]; then timeout=$t; fi
- done
-
- if [ $DEBIAN -eq 1 ]; then
- if [ $timeout -gt 0 ]; then TIMEOUT="-R $timeout"; fi
- start-stop-daemon --stop -x $RADOSGW --oknodo $TIMEOUT
- else
- killproc $RADOSGW
- while pidof $RADOSGW >/dev/null && [ $timeout -gt 0 ] ; do
- sleep 1
- timeout=$(($timeout - 1))
- done
- fi
- ;;
- status)
- daemon_is_running $RADOSGW
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|force-reload|reload|status} [-v|--verbose]" >&2
- exit 3
- ;;
-esac
-