~upstart-devel/upstart/upstart-jobs

« back to all changes in this revision

Viewing changes to utopic/etc/init.d/radosgw

  • Committer: Dimitri John Ledkov
  • Date: 2014-05-06 18:45:46 UTC
  • Revision ID: dimitri.ledkov@canonical.com-20140506184546-5toyx56xxrue0f0v
auto update

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh
 
2
### BEGIN INIT INFO
 
3
# Provides:          radosgw
 
4
# Required-Start:    $remote_fs $named $network $time
 
5
# Required-Stop:     $remote_fs $named $network $time
 
6
# Default-Start:     2 3 4 5
 
7
# Default-Stop:      0 1 6
 
8
# Short-Description: radosgw RESTful rados gateway
 
9
# Description: radosgw RESTful rados gateway
 
10
### END INIT INFO
 
11
 
 
12
PATH=/sbin:/bin:/usr/bin
 
13
 
 
14
. /lib/lsb/init-functions
 
15
 
 
16
daemon_is_running() {
 
17
    daemon=$1
 
18
    if pidof $daemon >/dev/null; then
 
19
        echo "$daemon is running."
 
20
        exit 0
 
21
    else
 
22
        echo "$daemon is not running."
 
23
        exit 1
 
24
    fi
 
25
}
 
26
 
 
27
VERBOSE=0
 
28
for opt in $*; do
 
29
    if [ "$opt" = "-v" ] || [ "$opt" = "--verbose" ]; then
 
30
       VERBOSE=1
 
31
    fi
 
32
done
 
33
 
 
34
# prefix for radosgw instances in ceph.conf
 
35
PREFIX='client.radosgw.'
 
36
 
 
37
# user to run radosgw as (it not specified in ceph.conf)
 
38
DEFAULT_USER='www-data'
 
39
 
 
40
RADOSGW=`which radosgw`
 
41
if [ ! -x "$RADOSGW" ]; then
 
42
    [ $VERBOSE -eq 1 ] && echo "$RADOSGW could not start, it is not executable."
 
43
    exit 1
 
44
fi
 
45
 
 
46
case "$1" in
 
47
    start)
 
48
        for name in `ceph-conf --list-sections $PREFIX`;
 
49
        do
 
50
            auto_start=`ceph-conf -n $name 'auto start'`
 
51
            if [ "$auto_start" = "no" ] || [ "$auto_start" = "false" ] || [ "$auto_start" = "0" ]; then
 
52
                continue
 
53
            fi
 
54
 
 
55
            # is the socket defined?  if it's not, this instance shouldn't run as a daemon.
 
56
            rgw_socket=`$RADOSGW -n $name --show-config-value rgw_socket_path`
 
57
            if [ -z "$rgw_socket" ]; then
 
58
                continue
 
59
            fi
 
60
 
 
61
            # mapped to this host?
 
62
            host=`ceph-conf -n $name host`
 
63
            hostname=`hostname -s`
 
64
            if [ "$host" != "$hostname" ]; then
 
65
                [ $VERBOSE -eq 1 ] && echo "hostname $hostname could not be found in ceph.conf:[$name], not starting."
 
66
                continue
 
67
            fi
 
68
 
 
69
            user=`ceph-conf -n $name user`
 
70
            if [ -z "$user" ]; then
 
71
                user="$DEFAULT_USER"
 
72
            fi
 
73
 
 
74
            log_file=`$RADOSGW -n $name --show-config-value log_file`
 
75
            if [ -n "$log_file" ] && [ ! -e "$log_file" ]; then
 
76
                touch "$log_file"
 
77
                chown $user $log_file
 
78
            fi
 
79
 
 
80
            echo "Starting $name..."
 
81
            start-stop-daemon --start -u $user -x $RADOSGW -- -n $name
 
82
        done
 
83
        daemon_is_running $RADOSGW
 
84
        ;;
 
85
    reload)
 
86
        echo "Reloading $name..."
 
87
        start-stop-daemon --stop --signal HUP -x $RADOSGW --oknodo
 
88
        ;;
 
89
    restart|force-reload)
 
90
        $0 stop
 
91
        $0 start
 
92
        ;;
 
93
    stop)
 
94
        start-stop-daemon --stop -x $RADOSGW --oknodo
 
95
        ;;
 
96
    status)
 
97
        daemon_is_running $RADOSGW
 
98
        ;;
 
99
    *)
 
100
        echo "Usage: $0 {start|stop|restart|force-reload|reload|status} [-v|--verbose]" >&2
 
101
        exit 3
 
102
        ;;
 
103
esac
 
104