From 4958b41e8a4807c9c4dba519951a97aad53b4745 Mon Sep 17 00:00:00 2001
From: Michael Hanselmann <hansmi@google.com>
Date: Thu, 8 Dec 2011 15:35:23 +0100
Subject: [PATCH] daemon.GenericMain: Don't generate backtrace on conflicting
 daemons

Instead, print a nicer error message. This should fix issue 200.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>
---
 lib/daemon.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/daemon.py b/lib/daemon.py
index f5e18a25b..31447277d 100644
--- a/lib/daemon.py
+++ b/lib/daemon.py
@@ -687,7 +687,12 @@ def GenericMain(daemon_name, optionparser,
   signal.signal(signal.SIGHUP,
                 compat.partial(_HandleSigHup, [log_reopen_fn, stdio_reopen_fn]))
 
-  utils.WritePidFile(utils.DaemonPidFileName(daemon_name))
+  try:
+    utils.WritePidFile(utils.DaemonPidFileName(daemon_name))
+  except errors.PidFileLockError, err:
+    print >> sys.stderr, "Error while locking PID file:\n%s" % err
+    sys.exit(constants.EXIT_FAILURE)
+
   try:
     try:
       logging.info("%s daemon startup", daemon_name)
-- 
GitLab