Revision 610bc9ee daemons/ganeti-masterd

b/daemons/ganeti-masterd
93 93

  
94 94
    """
95 95
    SocketServer.UnixStreamServer.__init__(self, address, rqhandler)
96
    self.do_quit = False
97 96
    self.context = context
98 97

  
99 98
    # We'll only start threads once we've forked.
100 99
    self.jobqueue = None
101 100
    self.request_workers = None
102 101

  
103
    signal.signal(signal.SIGINT, self.handle_quit_signals)
104
    signal.signal(signal.SIGTERM, self.handle_quit_signals)
105

  
106 102
  def setup_queue(self):
107 103
    self.jobqueue = jqueue.JobQueue(self.context)
108 104
    self.request_workers = workerpool.WorkerPool(CLIENT_REQUEST_WORKERS,
......
114 110
    """
115 111
    self.request_workers.AddTask(self, request, client_address)
116 112

  
117
  def handle_quit_signals(self, signum, frame):
118
    print "received %s in %s" % (signum, frame)
119
    self.do_quit = True
120

  
121 113
  def serve_forever(self):
122 114
    """Handle one request at a time until told to quit."""
123
    while not self.do_quit:
124
      self.handle_request()
125
      print "served request, quit=%s" % (self.do_quit)
115
    sighandler = utils.SignalHandler([signal.SIGINT, signal.SIGTERM])
116
    try:
117
      while not sighandler.called:
118
        self.handle_request()
119
    finally:
120
      sighandler.Reset()
126 121

  
127 122
  def server_cleanup(self):
128 123
    """Cleanup the server.

Also available in: Unified diff