summaryrefslogtreecommitdiffstats
path: root/vserver-teardown.patch
blob: a9ca0d9305b769fc53e93fdf835b9d42454ca677 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--- /usr/sbin/vserver	2011-04-07 16:39:34.000000000 +0200
+++ /usr/sbin/vserver	2011-04-07 19:50:45.000000000 +0200
@@ -203,16 +203,27 @@
 test "$cmd" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
     exec $_VNAMESPACE --new -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"
 
+. $__PKGLIBDIR/vserver.functions
+
 # Enter the namespace early so we can test for files inside the guest
 test "$cmd" != enter -a "$cmd" != stop || \
     test -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
-    ! isVserverRunning "$VSERVER_DIR" || \
-    exec $_VNAMESPACE --enter "$VSERVER_DIR" -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"
+    ! isVserverRunning "$VSERVER_DIR" || {
+        $_VNAMESPACE --enter "$VSERVER_DIR" -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"
+        result=$?
+
+        if test "$cmd" == "stop" ; then
+            pushd "$VSERVER_DIR" > /dev/null
+            execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" teardown
+            popd > /dev/null
+        fi
+
+        exit $result
+    }
 
 set_init_cwd
 cd /
 
-. $__PKGLIBDIR/vserver.functions
 case "$2" in
     (start|stop|delete)
 	shift 2