summaryrefslogtreecommitdiff
path: root/src/stop.sh
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@hq.newdream.net>2008-12-12 14:51:40 -0800
committerYehuda Sadeh <yehuda@hq.newdream.net>2008-12-12 14:51:40 -0800
commitab733782e2e8d5feb96122a3509c7f36021242c9 (patch)
tree34dc3a2dfd0d78e17bde9143e37221080418afac /src/stop.sh
parent93cc10ef7261f711d9986a07d9de59d67109e1b1 (diff)
downloadceph-ab733782e2e8d5feb96122a3509c7f36021242c9.tar.gz
vstart.sh/stop.sh can start and stop specific modules
Diffstat (limited to 'src/stop.sh')
-rwxr-xr-xsrc/stop.sh46
1 files changed, 45 insertions, 1 deletions
diff --git a/src/stop.sh b/src/stop.sh
index 585a241b897..fceb17f2a69 100755
--- a/src/stop.sh
+++ b/src/stop.sh
@@ -1,2 +1,46 @@
#!/bin/sh
-killall crun cmon cmds cosd
+
+do_killall() {
+ pg=`pgrep -f crun.*$1`
+ [ "$pg" != "" ] && kill $pg
+ killall $1
+}
+
+usage="usage: $0 [all] [mon] [mds] [osd]\n"
+
+let stop_all=1
+let stop_mon=0
+let stop_mds=0
+let stop_osd=0
+
+while [ $# -ge 1 ]; do
+ case $1 in
+ all )
+ stop_all=1
+ ;;
+ mon | cmon )
+ stop_mon=1
+ stop_all=0
+ ;;
+ mds | cmds )
+ stop_mds=1
+ stop_all=0
+ ;;
+ osd | cosd )
+ stop_osd=1
+ stop_all=0
+ ;;
+ * )
+ printf "$usage"
+ exit
+ esac
+ shift
+done
+
+if [ $stop_all -eq 1 ]; then
+ killall crun cmon cmds cosd
+else
+ [ $stop_mon -eq 1 ] && do_killall cmon
+ [ $stop_mds -eq 1 ] && do_killall cmds
+ [ $stop_osd -eq 1 ] && do_killall cosd
+fi