summaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorAmar Tumballi <amarts@redhat.com>2013-11-15 13:17:42 +0530
committerVijay Bellur <vbellur@redhat.com>2014-06-17 04:37:21 -0700
commitd65e8a871aa81ef7d2275da025f66d6e6dabc47c (patch)
tree2ab8badef33829b72b2df4b7e6260e40b41007d4 /extras
parent53d932b490c505901ddd1a0133e8125ad6dfd24c (diff)
extras: add a script to stop all the glusterfs process
Change-Id: I9f73bf0308625695ed78db06478963d16644852a Signed-off-by: Amar Tumballi <amarts@redhat.com> Reviewed-on: http://review.gluster.org/6270 Reviewed-by: Sachidananda Urs <sacchi@gmail.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'extras')
-rwxr-xr-xextras/stop-all-gluster-processes.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/extras/stop-all-gluster-processes.sh b/extras/stop-all-gluster-processes.sh
new file mode 100755
index 00000000000..6c81a301c72
--- /dev/null
+++ b/extras/stop-all-gluster-processes.sh
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+function main()
+{
+ for pidfile in $(find /var/lib/glusterd/ -iname '*pid');
+ do
+ pid=$(cat ${pidfile});
+ echo "sending SIGTERM to process $pid";
+ kill -TERM $pid;
+ done
+
+ # for geo-replication, only 'monitor' has pid file written, other
+ # processes are not having a pid file, so get it through 'ps' and
+ # handle these processes
+ gsyncpid=`ps aux | grep gluster | grep gsync | awk '{print $2}'`;
+ test -n $gsyncpid && kill -TERM $gsyncpid;
+
+ sleep 5;
+
+ # if pid file still exists, its something to KILL
+ for pidfile in $(find /var/lib/glusterd/ -iname '*pid');
+ do
+ pid=$(cat ${pidfile});
+ echo "sending SIGKILL to process $pid";
+ kill -KILL $pid;
+ done
+
+ # handle 'KILL' of geo-replication
+ gsyncpid=`ps aux | grep gluster | grep gsync | awk '{print $2}'`;
+ test -n $gsyncpid && kill -KILL $gsyncpid;
+}
+
+main "$@";