7 from optparse import OptionParser
9 parser = OptionParser()
10 parser.add_option("-n", "--net",
11 action="store_true", dest="netns", default=False,
12 help="Enter network namespace")
13 parser.add_option("-m", "--mnt",
14 action="store_true", dest="mntns", default=False,
15 help="Enter mount namespace")
17 (options, args) = parser.parse_args()
22 print "You must specify a vm name"
27 cmd = 'grep %s /proc/*/cgroup | grep freezer'%slice_name
28 output = os.popen(cmd).readlines()
30 print "Error finding slice %s"%slice_name
37 path = l.split(':')[0]
38 comp = l.rsplit(':')[-1]
39 slice_name_check = comp.rsplit('/')[-1]
41 if (slice_name_check == slice_name):
43 pid = slice_path.split('/')[2]
44 cmdline = open('/proc/%s/cmdline'%pid).read().rstrip('\n\x00')
45 if (cmdline == '/sbin/init'):
46 slice_spec = slice_path
52 print "Could not find any processes associated with %s"%slice_name
55 #os.closerange(0,1024)
57 r1 = setns.chcontext('/proc/%s/ns/utc'%pid)
58 r2 = setns.chcontext('/proc/%s/ns/ipc'%pid)
59 path = '/proc/%s/ns/net'%pid
60 r3 = setns.chcontext(path)
62 open('/proc/lxcsu','w').write(pid)
63 os.system('mount none -t proc /proc')
64 os.execv('/bin/sh',['/bin/sh'])