X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=python%2Fvserver.py;h=93a22a2092860cf7f990846061713e0beb399279;hb=91f3bf94636e7e3127c031640d8a51977045582f;hp=e27f6bb1a59545a0a25017b597c32310a09af3f3;hpb=4f2445b4807306b582013abb957e6ff263e3787d;p=util-vserver.git diff --git a/python/vserver.py b/python/vserver.py index e27f6bb..93a22a2 100644 --- a/python/vserver.py +++ b/python/vserver.py @@ -1,6 +1,6 @@ # Copyright 2005 Princeton University -#$Id: vserver.py,v 1.65 2007/07/31 14:36:19 dhozac Exp $ +#$Id: vserver.py,v 1.68 2007/07/31 22:04:24 dhozac Exp $ import errno import fcntl @@ -61,6 +61,9 @@ class VServerConfig: def __init__(self, name, directory): self.name = name self.dir = directory + if not (os.path.isdir(self.dir) and + os.access(self.dir, os.R_OK | os.W_OK | os.X_OK): + raise NoSuchVServer, "%s does not exist" % self.dir def get(self, option, default = None): try: @@ -405,11 +408,6 @@ class VServer: state_file = open("/var/run/vservers/%s" % self.name, "w") # use /dev/null for stdin, /var/log/boot.log for stdout/err - try: - os.close(0) - os.close(1) - except: - pass fd = os.open("/dev/null", os.O_RDONLY) if fd != 0: os.dup2(fd, 0) @@ -436,7 +434,7 @@ class VServer: cmd_args = [cmd[0]] + map(lambda x: x % arg_subst, cmd[1:]) print >>log, "executing '%s'" % " ".join(cmd_args) - os.spawnvp(os.P_WAIT,cmd[0],*cmd_args) + os.spawnvp(os.P_WAIT,cmd[0],cmd_args) except: traceback.print_exc() os._exit(1)