self.detectState() time.sleep(timestamp) finally: sensor.clean() class PirSensorDaemon(Daemon): def run(self): your_code = PirSensor() your_code.run() if __name__ == "__main__": daemon = PirSensorDaemon( str(os.path.dirname(os.path.realpath(__file__))) + '/deamon.pid') if len(sys.argv) == 2: if 'start' == sys.argv[1]: daemon.start() elif 'stop' == sys.argv[1]: sensor.clean() daemon.stop() elif 'restart' == sys.argv[1]: sensor.clean() daemon.restart() else: print "Unknown command" sys.exit(2) sys.exit(0) else: print "usage: %s start|stop|restart" % sys.argv[0] sys.exit(2)