diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2014-02-28 21:09:25 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2014-02-28 21:09:25 +0100 |
commit | a97473c54a958d14cf083a19134767345b42be81 (patch) | |
tree | eb6759574194e601b935046dee98fde249e92830 /vserver.netns | |
parent | d9d60af781079936010f8fe700ad4e5f1deb1e5a (diff) | |
parent | 3ed5f40df866fe48b7f634e353e40b699899c1f8 (diff) | |
download | util-vserver-netns-a97473c54a958d14cf083a19134767345b42be81.tar.gz util-vserver-netns-a97473c54a958d14cf083a19134767345b42be81.tar.bz2 util-vserver-netns-a97473c54a958d14cf083a19134767345b42be81.zip |
Merge commit '1.4' into debian
* commit '1.4':
vserver.netns: only delete the netns, if nothing is active in it
vserver.functions: add magically localhost for netns
vserver.netns: interface has to be down to change mac
Diffstat (limited to 'vserver.netns')
-rwxr-xr-x | vserver.netns | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/vserver.netns b/vserver.netns index 8e55c02..c507621 100755 --- a/vserver.netns +++ b/vserver.netns @@ -38,7 +38,8 @@ function _processSingleNetwork() { [ -n "$mav" ] || mac="$(netnsCreateMac "$2")" $_IP link set dev "$iface" netns "$VSERVER_NAME" - $_IP netns exec "$VSERVER_NAME" $_IP link set dev "$iface" address "$mac" + $_IP netns exec "$VSERVER_NAME" $_IP link set "$iface" down + $_IP netns exec "$VSERVER_NAME" $_IP link set "$iface" address "$mac" $_IP netns exec "$VSERVER_NAME" $_VPROCUNHIDE ;; @@ -142,7 +143,19 @@ if [ -n "${_USE_NETNS}" ]; then _processSingleNetwork remove "$net" done - $_IP netns delete "$VSERVER_NAME" + procs="$($_IP netns exec "$VSERVER_NAME" netstat -tulpenW | sed '1d;2d')" + if [ -n "$procs" ]; then + echo "There are still processes active in the network namespace:" + echo "$procs" + echo + echo "Deleting of the network namespace would produce a bad state." + echo "So we DO NOT delete the network namespace. You maybe want + echo "to kill the processes and execute the following commands:" + echo " $_IP netns exec \"$VSERVER_NAME\" netstat -tulpen" + echo " $_IP netns delete \"$VSERVER_NAME\"" + else + $_IP netns delete "$VSERVER_NAME" + fi fi exit $ret |