/etc/init.d/radosgw is in radosgw 10.1.2-0ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | #! /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
# detect systemd, also check whether the systemd-run binary exists
SYSTEMD_RUN=$(which systemd-run 2>/dev/null)
grep -qs systemd /proc/1/comm || SYSTEMD_RUN=""
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
elif [ -n "$SYSTEMD_RUN" ]; then
$SYSTEMD_RUN -r su "$user" -c "ulimit -n 32768; $RADOSGW -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
|