if self.rspec['enabled'] > 0:
logger.log('%s: starting in %d seconds' % (self.name, delay))
time.sleep(delay)
+ # VServer.start calls fork() internally,
+ # so just close the nonstandard fds and fork once to avoid creating zombies
child_pid = os.fork()
if child_pid == 0:
if self.initscriptchanged:
def install_initscript():
flags = os.O_WRONLY | os.O_CREAT | os.O_TRUNC
fd = os.open('/etc/rc.vinit', flags, 0755)
- os.write(fd, new_initscript)
+ os.write(fd, self.initscript)
os.close(fd)
try:
self.chroot_call(install_initscript)
- self.initscriptchanged = False
except: logger.log_exc(self.name)
- # VServer.start calls fork() internally,
- # so just close the nonstandard fds and fork once to avoid creating zombies
tools.close_nonstandard_fds()
vserver.VServer.start(self)
os._exit(0)
- else: os.waitpid(child_pid, 0)
+ else:
+ os.waitpid(child_pid, 0)
+ self.initscriptchanged = False
else: logger.log('%s: not starting, is not enabled' % self.name)
def stop(self):
logger.log('%s: stopping' % self.name)
vserver.VServer.stop(self)
+ def is_running(self):
+ return vserver.VServer.is_running(self)
+
def set_resources(self):
disk_max = self.rspec['disk_max']
logger.log('%s: setting max disk usage to %d KiB' % (self.name, disk_max))