diff options
author | Matt Kemp <matt@mattikus.com> | 2014-10-01 21:19:20 +0000 |
---|---|---|
committer | Matt Kemp <matt@mattikus.com> | 2014-10-01 21:25:55 +0000 |
commit | 5d7e50dd4f55026390f9a545d0893c3ca51c7a96 (patch) | |
tree | 733fc9a0301fc72750d79bde68a5c9030ef9db2e /src/lib/Bcfg2/Server | |
parent | 7d11af710bbd1a6fdafcab7ad754953c1f8639b1 (diff) | |
download | bcfg2-5d7e50dd4f55026390f9a545d0893c3ca51c7a96.tar.gz bcfg2-5d7e50dd4f55026390f9a545d0893c3ca51c7a96.tar.bz2 bcfg2-5d7e50dd4f55026390f9a545d0893c3ca51c7a96.zip |
Fixes to ensure pidfile can be opened or broken if stale.
Diffstat (limited to 'src/lib/Bcfg2/Server')
-rw-r--r-- | src/lib/Bcfg2/Server/BuiltinCore.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/Bcfg2/Server/BuiltinCore.py b/src/lib/Bcfg2/Server/BuiltinCore.py index 251c39558..ed959f78d 100644 --- a/src/lib/Bcfg2/Server/BuiltinCore.py +++ b/src/lib/Bcfg2/Server/BuiltinCore.py @@ -84,6 +84,7 @@ class Core(BaseCore): def _daemonize(self): """ Open :attr:`context` to drop privileges, write the PID file, and daemonize the server core. """ + # Attempt to ensure lockfile is able to be created and not stale try: self.context.pidfile.acquire() except LockFailed: @@ -91,7 +92,7 @@ class Core(BaseCore): self.logger.error("Failed to daemonize %s: %s" % (self.name, err)) return False except LockTimeout: - try: + try: # attempt to break the lock os.kill(self.context.pidfile.read_pid(), 0) except OSError: # No process with locked PID self.context.pidfile.break_lock() @@ -101,6 +102,8 @@ class Core(BaseCore): "lock on %s" % (self.name, self.setup['daemon'])) return False + else: + self.context.pidfile.release() self.context.open() self.logger.info("%s daemonized" % self.name) |