Only write PID after last fork
- should fix systemd integration
This commit is contained in:
parent
6fb5a751c6
commit
3cb9547389
|
@ -363,7 +363,7 @@ class Main:
|
|||
# fork not implemented
|
||||
pass
|
||||
else:
|
||||
shared.thisapp.lock() # relock
|
||||
shared.thisapp.lock(True) # relock and write pid
|
||||
shared.thisapp.lockPid = None # indicate we're the final child
|
||||
sys.stdout.flush()
|
||||
sys.stderr.flush()
|
||||
|
|
|
@ -36,7 +36,7 @@ class singleinstance:
|
|||
self.initialized = True
|
||||
atexit.register(self.cleanup)
|
||||
|
||||
def lock(self):
|
||||
def lock(self, writePid = False):
|
||||
if self.lockPid is None:
|
||||
self.lockPid = os.getpid()
|
||||
if sys.platform == 'win32':
|
||||
|
@ -68,9 +68,10 @@ class singleinstance:
|
|||
sys.exit(-1)
|
||||
else:
|
||||
pidLine = "%i\n" % self.lockPid
|
||||
self.fp.truncate(0)
|
||||
self.fp.write(pidLine)
|
||||
self.fp.flush()
|
||||
if writePid:
|
||||
self.fp.truncate(0)
|
||||
self.fp.write(pidLine)
|
||||
self.fp.flush()
|
||||
|
||||
def cleanup(self):
|
||||
if not self.initialized:
|
||||
|
|
Reference in New Issue
Block a user