]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (C) 2013 Inktank <info@inktank.com> | |
4 | # Copyright (C) 2013 Cloudwatt <libre.licensing@cloudwatt.com> | |
5 | # | |
6 | # Author: Loic Dachary <loic@dachary.org> | |
7 | # | |
8 | # This program is free software; you can redistribute it and/or modify | |
9 | # it under the terms of the GNU Library Public License as published by | |
10 | # the Free Software Foundation; either version 2, or (at your option) | |
11 | # any later version. | |
12 | # | |
13 | # This program is distributed in the hope that it will be useful, | |
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | # GNU Library Public License for more details. | |
17 | # | |
18 | ||
19 | test -d dev/osd0/. && test -e dev/sudo && SUDO="sudo" | |
20 | ||
21 | if [ -e CMakeCache.txt ]; then | |
22 | [ -z "$CEPH_BIN" ] && CEPH_BIN=src | |
23 | else | |
24 | [ -z "$CEPH_BIN" ] && CEPH_BIN=bin | |
25 | fi | |
26 | ||
27 | MYUID=$(id -u) | |
28 | MYNAME=$(id -nu) | |
29 | ||
30 | do_killall() { | |
31 | pg=`pgrep -u $MYUID -f ceph-run.*$1` | |
32 | [ -n "$pg" ] && kill $pg | |
33 | $SUDO killall -u $MYNAME $1 | |
34 | } | |
35 | ||
36 | usage="usage: $0 [all] [mon] [mds] [osd] [rgw]\n" | |
37 | ||
38 | stop_all=1 | |
39 | stop_mon=0 | |
40 | stop_mds=0 | |
41 | stop_osd=0 | |
42 | stop_mgr=0 | |
43 | stop_rgw=0 | |
44 | ||
45 | while [ $# -ge 1 ]; do | |
46 | case $1 in | |
47 | all ) | |
48 | stop_all=1 | |
49 | ;; | |
50 | mon | ceph-mon ) | |
51 | stop_mon=1 | |
52 | stop_all=0 | |
53 | ;; | |
54 | mgr | ceph-mgr ) | |
55 | stop_mgr=1 | |
56 | stop_all=0 | |
57 | ;; | |
58 | mds | ceph-mds ) | |
59 | stop_mds=1 | |
60 | stop_all=0 | |
61 | ;; | |
62 | osd | ceph-osd ) | |
63 | stop_osd=1 | |
64 | stop_all=0 | |
65 | ;; | |
66 | rgw | ceph-rgw ) | |
67 | stop_rgw=1 | |
68 | stop_all=0 | |
69 | ;; | |
70 | * ) | |
71 | printf "$usage" | |
72 | exit | |
73 | esac | |
74 | shift | |
75 | done | |
76 | ||
77 | if [ $stop_all -eq 1 ]; then | |
78 | if "${CEPH_BIN}"/rbd showmapped >/dev/null 2>&1; then | |
79 | "${CEPH_BIN}"/rbd showmapped | tail -n +2 | | |
80 | while read DEV; do | |
81 | # While it is currently possible to create an rbd image with | |
82 | # whitespace chars in its name, krbd will refuse mapping such | |
83 | # an image, so we can safely split on whitespace here. (The | |
84 | # same goes for whitespace chars in names of the pools that | |
85 | # contain rbd images). | |
86 | DEV="$(echo "${DEV}" | tr -s '[:space:]' | awk '{ print $5 }')" | |
87 | sudo "${CEPH_BIN}"/rbd unmap "${DEV}" | |
88 | done | |
89 | ||
90 | if [ -n "$("${CEPH_BIN}"/rbd showmapped)" ]; then | |
91 | echo "WARNING: Some rbd images are still mapped!" >&2 | |
92 | fi | |
93 | fi | |
94 | ||
95 | for p in ceph-mon ceph-mds ceph-osd ceph-mgr radosgw lt-radosgw apache2 ; do | |
96 | for try in 0 1 1 1 1 ; do | |
97 | if ! pkill -u $MYUID $p ; then | |
98 | break | |
99 | fi | |
100 | sleep $try | |
101 | done | |
102 | done | |
103 | ||
104 | pkill -u $MYUID -f valgrind.bin.\*ceph-mon | |
105 | $SUDO pkill -u $MYUID -f valgrind.bin.\*ceph-osd | |
106 | pkill -u $MYUID -f valgrind.bin.\*ceph-mds | |
107 | else | |
108 | [ $stop_mon -eq 1 ] && do_killall ceph-mon | |
109 | [ $stop_mds -eq 1 ] && do_killall ceph-mds | |
110 | [ $stop_osd -eq 1 ] && do_killall ceph-osd | |
111 | [ $stop_mgr -eq 1 ] && do_killall ceph-mgr | |
112 | [ $stop_rgw -eq 1 ] && do_killall radosgw lt-radosgw apache2 | |
113 | fi |