- logger.log('sliver_vs: %s: starting in %d seconds' % (self.name, delay))
- time.sleep(delay)
- # the generic /etc/init.d/vinit script is permanently refreshed, and enabled
- self.install_and_enable_vinit()
- # expose .ssh for omf_friendly slivers
- if 'omf_control' in self.rspec['tags']:
- self.expose_ssh_dir()
- # if a change has occured in the slice initscript, reflect this in /etc/init.d/vinit.slice
- self.refresh_slice_vinit()
- child_pid = os.fork()
- if child_pid == 0:
- # 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)