From: Faiyaz Ahmed Date: Thu, 8 May 2008 21:11:32 +0000 (+0000) Subject: Revert to forking before calling VServer.start() to avoid creating zombies. X-Git-Tag: NodeManager-1.8-0~50 X-Git-Url: http://git.onelab.eu/?p=nodemanager.git;a=commitdiff_plain;h=ada977aa9107cc9244e9f516b75425b860196a82 Revert to forking before calling VServer.start() to avoid creating zombies. --- diff --git a/sliver_vs.py b/sliver_vs.py index ab9a716..48d7a47 100644 --- a/sliver_vs.py +++ b/sliver_vs.py @@ -157,9 +157,14 @@ class Sliver_VS(accounts.Account, vserver.VServer): if self.rspec['enabled'] > 0: logger.log('%s: starting in %d seconds' % (self.name, delay)) time.sleep(delay) - # VServer.start calls fork() internally - vserver.VServer.start(self) - + 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) else: logger.log('%s: not starting, is not enabled' % self.name) self.initscriptchanged = False