daemon: Integrate checking for an existing pidfile into daemonize_start().
[sliver-openvswitch.git] / tests / test-daemon.py
index 98a5165..586e0ec 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2010 Nicira Networks.
+# Copyright (c) 2010, 2011 Nicira Networks.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # limitations under the License.
 
 import getopt
+import signal
 import sys
 import time
 
 import ovs.daemon
 import ovs.util
 
+def handler(signum, frame):
+    raise Exception("Signal handler called with %d" % signum)
+
 def main(argv):
+
+    signal.signal(signal.SIGHUP, handler)
+
     try:
         options, args = getopt.gnu_getopt(
             argv[1:], 'b', ["bail", "help"] + ovs.daemon.LONG_OPTIONS)
@@ -38,7 +45,6 @@ def main(argv):
                              % (ovs.util.PROGRAM_NAME, key))
             sys.exit(1)
 
-    ovs.daemon.die_if_already_running()
     ovs.daemon.daemonize_start()
     if bail:
         sys.stderr.write("%s: exiting after daemonize_start() as requested\n"
@@ -63,4 +69,10 @@ Other options:
     sys.exit(0)
 
 if __name__ == '__main__':
-    main(sys.argv)
+    try:
+        main(sys.argv)
+    except SystemExit:
+        # Let system.exit() calls complete normally
+        raise
+    except:
+        sys.exit(ovs.daemon.RESTART_EXIT_CODE)