diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-11-19 13:57:30 -0500 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-11-19 13:57:30 -0500 |
commit | d6fdeb6f1feda9d46f60302109186f37092a26e5 (patch) | |
tree | d0dd45a6b717a7481189e41a0c0824d1efebc179 /src/lib/Bcfg2/Server/BuiltinCore.py | |
parent | b4f9273c1f41664e020ba0fe994b64acdcb9fe0f (diff) | |
download | bcfg2-d6fdeb6f1feda9d46f60302109186f37092a26e5.tar.gz bcfg2-d6fdeb6f1feda9d46f60302109186f37092a26e5.tar.bz2 bcfg2-d6fdeb6f1feda9d46f60302109186f37092a26e5.zip |
fail gracefully when pidfile creation fails
Diffstat (limited to 'src/lib/Bcfg2/Server/BuiltinCore.py')
-rw-r--r-- | src/lib/Bcfg2/Server/BuiltinCore.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/lib/Bcfg2/Server/BuiltinCore.py b/src/lib/Bcfg2/Server/BuiltinCore.py index 63149c15e..0fe8f39da 100644 --- a/src/lib/Bcfg2/Server/BuiltinCore.py +++ b/src/lib/Bcfg2/Server/BuiltinCore.py @@ -11,9 +11,9 @@ from Bcfg2.SSLServer import XMLRPCServer # pylint: disable=E0611 try: - from daemon.pidfile import PIDLockFile + from daemon.pidfile import PIDLockFile, LockFailed except ImportError: - from daemon.pidlockfile import PIDLockFile + from daemon.pidlockfile import PIDLockFile, LockFailed # pylint: enable=E0611 @@ -80,9 +80,14 @@ class Core(BaseCore): def _daemonize(self): """ Open :attr:`context` to drop privileges, write the PID file, and daemonize the server core. """ - self.context.open() - self.logger.info("%s daemonized" % self.name) - return True + try: + self.context.open() + self.logger.info("%s daemonized" % self.name) + return True + except LockFailed: + err = sys.exc_info()[1] + self.logger.error("Failed to daemonize %s: %s" % (self.name, err)) + return False def _run(self): """ Create :attr:`server` to start the server listening. """ |