]> git-server-git.apps.pok.os.sepia.ceph.com Git - radosgw-agent.git/commitdiff
packaging: add init scripts
authorJosh Durgin <josh.durgin@inktank.com>
Wed, 19 Mar 2014 10:11:50 +0000 (03:11 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Sat, 22 Mar 2014 12:14:31 +0000 (05:14 -0700)
create log, run, and etc dirs as well

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
debian/dirs [new file with mode: 0644]
debian/rules
init-radosgw-agent [new file with mode: 0644]
radosgw-agent.spec

diff --git a/debian/dirs b/debian/dirs
new file mode 100644 (file)
index 0000000..b1f058b
--- /dev/null
@@ -0,0 +1,3 @@
+/etc/ceph/radosgw-agent
+/var/log/ceph/radosgw-agent
+/var/run/ceph/radosgw-agent
index 45200da0e780615f1631bed45332cd8fcbce9791..7d2e9dd05c13e2e2f90ae1d08fb96f97a8e993e9 100755 (executable)
@@ -6,3 +6,7 @@ export DH_VERBOSE=1
 %:
        dh $@ --buildsystem python_distutils --with python2
 
+override_dh_installinit:
+       install -d -m0755 debian/radosgw-agent/etc/init
+       install -m0644 init-radosgw-agent debian/radosgw-agent/etc/init
+       dh_installinit --no-start
diff --git a/init-radosgw-agent b/init-radosgw-agent
new file mode 100644 (file)
index 0000000..ace91ae
--- /dev/null
@@ -0,0 +1,102 @@
+#!/bin/sh
+# Start/stop radosgw-agent daemons
+# chkconfig: 2345 60 80
+
+### BEGIN INIT INFO
+# Provides:          radosgw-agent
+# Required-Start:    $remote_fs $named $network
+# Required-Stop:     $remote_fs $named $network
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start radosgw-agent at boot time
+# Description:       Enable radosgw-agent services
+### END INIT INFO
+
+dir="/"
+config_path="/etc/ceph/radosgw-agent/default.conf"
+
+if [ $2 ]; then
+        config_path=$2
+fi
+
+if [ ! -f "$config_path" ]; then
+        echo "$0: configuration file $config_path not found"
+        exit 0
+fi
+
+cmd="/usr/bin/radosgw-agent -c $config_path"
+
+name=`basename $config_path`
+pid_file="/var/run/ceph/radosgw-agent/$name.pid"
+
+is_running() {
+        [ -e "$pid_file" ] || return 1
+        pid=`cat "$pid_file"`
+        [ -e "/proc/$pid" ] && grep -q "/usr/bin/radosgw-agent.-c.$config_path" "/proc/$pid/cmdline" && return 0
+        return 1
+}
+
+case "$1" in
+        start)
+        if is_running; then
+                echo "Already started"
+                exit 0
+        fi
+        echo "Starting radosgw-agent $name"
+        cd "$dir"
+        $cmd > /dev/null 2>&1 &
+        echo $! > "$pid_file"
+        if ! is_running; then
+               echo "Unable to start, see /var/log/ceph/radosgw-agent/"
+               exit 1
+        fi
+        ;;
+
+        stop)
+        if is_running; then
+                echo -n "Stopping radosgw-agent $name.."
+                pid=`cat "$pid_file"`
+                kill $pid
+                for i in {1..10}
+                do
+                        if ! is_running; then
+                                break
+                        fi
+
+                        echo -n "."
+                        sleep 1
+                done
+
+                if is_running; then
+                        echo "Not stopped; may still be shutting down or shutdown may have failed"
+                        exit 1
+                else
+                        echo "Stopped"
+                        rm "$pid_file"
+                fi
+        else
+                echo "Not running"
+        fi
+        ;;
+        restart)
+                $0 stop $name
+                if is_running; then
+                        echo "Unable to stop, will not attempt to start"
+                        exit 1
+                fi
+                $0 start $name
+        ;;
+        status)
+                if is_running; then
+                        echo "Running"
+                else
+                        echo "Stopped"
+                        exit 1
+                fi
+        ;;
+        *)
+                echo "Usage: $0 {start|stop|restart|status} [config-file]"
+                exit 1
+        ;;
+esac
+exit 0
index 15e9b8a34615bf6d8ee9445cf97f2bcbfdb4d0a9..3113611e0ceccb97b91082dea498f9ae25ef4d77 100644 (file)
@@ -30,6 +30,7 @@ UNKNOWN
 
 %build
 python setup.py build
+install -D init-radosgw-agent $RPM_BUILD_ROOT%{_initrddir}/radosgw-agent
 
 %install
 python setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES
@@ -39,3 +40,6 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -f INSTALLED_FILES
 %defattr(-,root,root)
+%dir %{_sysconfdir}/ceph/radosgw-agent/
+%dir %{_localstatedir}/log/ceph/radosgw-agent/
+%dir %{_localstatedir}/run/ceph/radosgw-agent/