def start(self, *args, **kwargs): """ Start the daemon """ if self.verbose >= 1: logger.info("Start lilac daemon...") # Check for a pidfile to see if the daemon already runs try: pf = file(self.pidfile, 'r') pid = int(pf.read().strip()) pf.close() except IOError: pid = None except SystemExit: pid = None if pid: message = "pidfile %s already exists. Is it already running?" logger.warning(message % self.pidfile) sys.exit(1) # Start the daemon self.daemonize() self.run(*args, **kwargs)
def start(self, *args, **kwargs): """ Start the daemon """ if self.verbose >= 1: logger.info("Start lilac daemon...") # Check for a pidfile to see if the daemon already runs try: pf = file(self.pidfile,'r') pid = int(pf.read().strip()) pf.close() except IOError: pid = None except SystemExit: pid = None if pid: message = "pidfile %s already exists. Is it already running?" logger.warning(message % self.pidfile) sys.exit(1) # Start the daemon self.daemonize() self.run(*args, **kwargs)
def stop(self): """ Stop the daemon """ if self.verbose >= 1: logger.info("Stop lilac daemon...") # Get the pid from the pidfile try: pf = file(self.pidfile, 'r') pid = int(pf.read().strip()) pf.close() except IOError: pid = None except ValueError: pid = None if not pid: message = "pidfile %s does not exist. Not running?" logger.warning(message % self.pidfile) # Just to be sure. A ValueError might occur if the PID file is empty but does actually exist if os.path.exists(self.pidfile): os.remove(self.pidfile) return # Not an error in a restart # Try killing the daemon process try: i = 0 while 1: os.kill(pid, signal.SIGTERM) time.sleep(0.1) i = i + 1 if i % 10 == 0: os.kill(pid, signal.SIGHUP) except OSError, err: err = str(err) if err.find("No such process") > 0: if os.path.exists(self.pidfile): os.remove(self.pidfile) else: logger.error(str(err)) sys.exit(1)
def stop(self): """ Stop the daemon """ if self.verbose >= 1: logger.info("Stop lilac daemon...") # Get the pid from the pidfile try: pf = file(self.pidfile,'r') pid = int(pf.read().strip()) pf.close() except IOError: pid = None except ValueError: pid = None if not pid: message = "pidfile %s does not exist. Not running?" logger.warning(message % self.pidfile) # Just to be sure. A ValueError might occur if the PID file is empty but does actually exist if os.path.exists(self.pidfile): os.remove(self.pidfile) return # Not an error in a restart # Try killing the daemon process try: i = 0 while 1: os.kill(pid, signal.SIGTERM) time.sleep(0.1) i = i + 1 if i % 10 == 0: os.kill(pid, signal.SIGHUP) except OSError, err: err = str(err) if err.find("No such process") > 0: if os.path.exists(self.pidfile): os.remove(self.pidfile) else: logger.error(str(err)) sys.exit(1)