summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/Bcfg2/Reporting/Collector.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/Bcfg2/Reporting/Collector.py b/src/lib/Bcfg2/Reporting/Collector.py
index b27a961fd..2214e775f 100644
--- a/src/lib/Bcfg2/Reporting/Collector.py
+++ b/src/lib/Bcfg2/Reporting/Collector.py
@@ -1,10 +1,10 @@
import atexit
import daemon
-import lockfile
import logging
import time
import traceback
import threading
+from daemon.pidlockfile import PIDLockFile, PIDFileError
import Bcfg2.Logger
from Bcfg2.Reporting.Transport import load_transport_from_config, \
@@ -79,8 +79,14 @@ class ReportingCollector(object):
if self.setup['daemon']:
self.logger.debug("Daemonizing")
- self.context.pidfile = lockfile.FileLock(self.setup['daemon'])
- self.context.open()
+ try:
+ self.context.pidfile = PIDLockFile(self.setup['daemon'])
+ self.context.open()
+ except PIDFileError:
+ self.logger.error("Error writing pid file: %s" %
+ traceback.format_exc().splitlines()[-1])
+ self.shutdown()
+ return
self.logger.info("Starting daemon")
self.transport.start_monitor(self)