summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2014-03-04 07:46:46 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2014-03-04 07:46:46 -0500
commitf76ee4bae4d8a45cc2050b8219cdf7f2e8c6533d (patch)
tree2d475325c15b883c2af7da40a6ff82ecb73bcbc9
parentb1b2b53f484d266089d9f043042729e29245382a (diff)
downloadbcfg2-f76ee4bae4d8a45cc2050b8219cdf7f2e8c6533d.tar.gz
bcfg2-f76ee4bae4d8a45cc2050b8219cdf7f2e8c6533d.tar.bz2
bcfg2-f76ee4bae4d8a45cc2050b8219cdf7f2e8c6533d.zip
bcfg2-report-collector: better error messages when failing to daemonize
-rw-r--r--src/lib/Bcfg2/Reporting/Collector.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Reporting/Collector.py b/src/lib/Bcfg2/Reporting/Collector.py
index 2859eca28..8ca145f16 100644
--- a/src/lib/Bcfg2/Reporting/Collector.py
+++ b/src/lib/Bcfg2/Reporting/Collector.py
@@ -1,3 +1,4 @@
+import sys
import atexit
import daemon
import logging
@@ -6,6 +7,7 @@ import traceback
import threading
# pylint: disable=E0611
+from lockfile import LockFailed, LockTimeout
try:
from lockfile.pidlockfile import PIDLockFile
from lockfile import Error as PIDFileError
@@ -119,6 +121,17 @@ class ReportingCollector(object):
try:
self.context.pidfile = PIDLockFile(self.setup['daemon'])
self.context.open()
+ except LockFailed:
+ self.logger.error("Failed to daemonize: %s" %
+ sys.exc_info()[1])
+ self.shutdown()
+ return
+ except LockTimeout:
+ self.logger.error("Failed to daemonize: "
+ "Failed to acquire lock on %s" %
+ self.setup['daemon'])
+ self.shutdown()
+ return
except PIDFileError:
self.logger.error("Error writing pid file: %s" %
traceback.format_exc().splitlines()[-1])