diff options
Diffstat (limited to 'events/src/glustereventsd.py')
| -rw-r--r-- | events/src/glustereventsd.py | 21 | 
1 files changed, 18 insertions, 3 deletions
diff --git a/events/src/glustereventsd.py b/events/src/glustereventsd.py index 91a0743ff22..d057e097c97 100644 --- a/events/src/glustereventsd.py +++ b/events/src/glustereventsd.py @@ -15,12 +15,13 @@ import sys  import signal  import SocketServer  import socket +from argparse import ArgumentParser, RawDescriptionHelpFormatter  from eventtypes import all_events  import handlers  import utils -from eventsapiconf import SERVER_ADDRESS -from utils import logger +from eventsapiconf import SERVER_ADDRESS, PID_FILE +from utils import logger, PidFile, PidFileLockFailed  class GlusterEventsRequestHandler(SocketServer.BaseRequestHandler): @@ -90,9 +91,23 @@ def init_event_server():      server.serve_forever() +def get_args(): +    parser = ArgumentParser(formatter_class=RawDescriptionHelpFormatter, +                            description=__doc__) +    parser.add_argument("-p", "--pid-file", help="PID File", +                        default=PID_FILE) + +    return parser.parse_args() + +  def main(): +    args = get_args()      try: -        init_event_server() +        with PidFile(args.pid_file): +            init_event_server() +    except PidFileLockFailed as e: +        sys.stderr.write("Failed to get lock for pid file({0}): {1}".format( +            args.pid_file, e))      except KeyboardInterrupt:          sys.exit(1)  | 
