Fall back to chroot() if setns() fails for mnt namespace
conforming to mininet style
added persistence option to HostWithPrivateDirs. also attached mount namespaces when mnexec -a is specified
mnexec: mount sysfs in each container
The sysfs filesystem is [tagged] with a set of namespaces when mounted, takenfrom the mounting process. Among other things, this controls which networkdevices will show up in /sys/class/net and /sys/class/net/bonding_masters....
Change cgroup() return type from int to void (avoids a gcc warning)
Defines _GNU_SOURCE (required by the unshare syscall)
The header file limits.h was being included twice
Fixes compiler warning: control reaches end of non-void function
Fixes compiler warning: implicit declaration of function 'isalnum'
mnexec: getopt bugfix
getopt returns an 'int', so use change datatype of 'c' to match it.Otherwise, 'c' may hold a value of 255 (0xff), and fail the comparisonwith -1 (0xffffffff): while ((c = getopt(...)) != -1)
This bug was uncovered on Ubuntu 13.04 running on ARM, using...
mnexec.c: substituting tabs with spaces.
Use __NR_setns so that setns has the right syscall # in 32-bit modefixes #127
Autogenerate man page for mnexec.
CPULimiteHost.popen(): set cgroup and (optionally) RT priority
Add support for attaching to network namespace using setns(2)
Removed unused variable.
Support for control-C. Finally.
I've changed the way things work a bit:
1. netns is replaced by mnexec, a general-purpose mininet helper.
2. For interactive commands, we now use mnexec -p, which prints out the pid, so we can kill it when someone hits control-C!...