diff options
Diffstat (limited to 'src/init-radosgw.sysv')
-rw-r--r-- | src/init-radosgw.sysv | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/src/init-radosgw.sysv b/src/init-radosgw.sysv new file mode 100644 index 00000000000..48a7b5b8f96 --- /dev/null +++ b/src/init-radosgw.sysv @@ -0,0 +1,91 @@ +#! /bin/bash -x +### 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 +### END INIT INFO + +PATH=/sbin:/bin:/usr/bin + +#. /lib/lsb/init-functions +. /etc/rc.d/init.d/functions + +# prefix for radosgw instances in ceph.conf +PREFIX='client.radosgw.' + +# user to run radosgw as (it not specified in ceph.conf) +#DEFAULT_USER='www-data' +DEFAULT_USER='apache' + +# directory to write logs to +LOGDIR='/var/log/radosgw' + +RADOSGW=`which radosgw` +if [ ! -x "$RADOSGW" ]; then + exit 0 +fi + +# make sure log dir exists +if [ ! -d "$LOGDIR" ]; then + mkdir -p $LOGDIR +fi + +case "$1" in + start) + for name in `ceph-conf --list-sections $PREFIX`; + do + auto_start=`ceph-conf -n $name 'auto start'` + if [ "$auto_start" = "no" ] || [ "$auto_start" = "false" ] || [ "$auto_start" = "0" ]; then + continue + fi + + # is the socket defined? if it's not, this instance shouldn't run as a daemon. + rgw_socket=`ceph-conf -n $name 'rgw socket path'` + if [ -z "$rgw_socket" ]; then + continue + fi + + # mapped to this host? + host=`ceph-conf -n $name host` + if [ "$host" != `hostname` ]; then + continue + fi + + user=`ceph-conf -n $name user` + if [ -z "$user" ]; then + user="$DEFAULT_USER" + fi + + log_file=`ceph-conf -n $name log_file` + if [ -n "$log_file" ] && [ ! -e "$log_file" ]; then + touch "$log_file" + chown $user $log_file + fi + + #start-stop-daemon --start -u $user -x $RADOSGW -- -n $name + daemon --user="$user" "$RADOSGW -n $name" + echo "Starting $name..." + done + ;; + reload) + #start-stop-daemon --signal HUP -x $RADOSGW --oknodo + killproc $RADOSGW -SIGHUP + echo "Reloading radosgw..." + ;; + restart|force-reload) + $0 stop + $0 start + ;; + stop) + #start-stop-daemon --stop -x $RADOSGW --oknodo + killproc $RADOSGW + echo "Stopping radosgw..." + ;; + *) + echo "Usage: $0 start|stop|restart" >&2 + exit 3 + ;; +esac
\ No newline at end of file |