for msg, ts in messages:
            if len(msg) > 14:
                continue

            df = pms.df(msg)

            if df not in [4, 5, 11]:
                continue

            line = ['%.6f' % ts, 'DF%02d' % df, msg]

            self.lines.append(line)

        if len(self.lines) > 1000:
            try:
                fcsv = open(csvfile, 'a')
                writer = csv.writer(fcsv)
                writer.writerows(self.lines)
                fcsv.close()
            except Exception, err:
                print err

            self.lines = []


if __name__ == '__main__':
    app = ELSClient(host=HOST, port=PORT)
    daemon_runner = DaemonRunner(app)
    daemon_runner.do_action()
Exemple #2
0
 def do_action(self):
     r = DaemonRunner(self)
     r.daemon_context.files_preserve = self.files_preserve
     r.do_action()
Exemple #3
0
from __future__ import division, print_function, unicode_literals

import os
import sys

from daemon.runner import DaemonRunner

PREFIX = os.path.abspath(os.path.dirname(__file__))

class WebUIDaemon(object):
    def __init__(self):
        self.stdin_path = os.devnull
        # self.stdout_path = os.devnull
        self.stdout_path = os.path.join(PREFIX, "/var/log/webui.log")
        self.stderr_path = self.stdout_path

        self.pidfile_path = "/var/run/webui.pid"
        self.pidfile_timeout = 1

    def run(self):
        sys.path.append(PREFIX)
        # Flask's reloader forks using sys.argv, set it to the actual entry-point since we can't run the daemon script again
        sys.argv = [os.path.join(PREFIX, "webui.py")]
        from webui import app
        app.run(debug=True)

if __name__ == "__main__":
    sys.argv[0] = os.path.abspath(sys.argv[0])
    DaemonRunner(WebUIDaemon()).do_action()
def main():
    """
          Call with arguments start/restart/stop
        """
    run = DaemonRunner(DashCam())
    run.do_action()
                when
            } for what, symbol, when in self.__update_cache])
            self.__update_cache = []
        else:
            symbol = context['symbol']
            frequency = context['frequency']
            latest_dt = context.get('to_date_time', None)
            self.__update_cache.append(
                (bar.FrequencyToStr[frequency], symbol, latest_dt))

    #def key_stats_updated(self, symbol):
    #return self.__last_updated['key_stats_updated'].get(symbol, False)

    #def __key_stats_updated(self, symbol):
    #self.__last_updated['key_stats_updated'][symbol] = True


if __name__ == '__main__':
    um = Manager()
    logger = logging.getLogger('SymbolUpdateManager')
    logger.setLevel(logging.DEBUG)
    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    handler = logging.FileHandler('/var/log/testdaemon/testdaemon.log')
    handler.setFormatter(formatter)
    logger.addHandler(handler)

    runner = DaemonRunner(um)
    runner.daemon_context.files_preserve = [handler.stream]
    runner.do_action()
Exemple #6
0
def run(indocker=None):
    docker_settings = init_config()

    log_location = '/var/log/dockerlaunch'
    run_location = '/var/run/dockerlaunch'
    lib_location = '/var/lib/dockerlaunch'

    socket_name = 'dockerlaunch.sock'
    log_name = 'dockerlaunch.log'
    pid_name = 'dockerlaunch.pid'
    script_name = 'docker-launch-inner.py'

    if not os.path.exists(lib_location):
        os.makedirs(lib_location)
        os.chmod(lib_location, 0o755)

    if indocker is None:
        indocker = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                'data', 'indocker.py')

    script_filename = os.path.join(lib_location, script_name)
    with open(script_filename, 'w') as f, open(indocker, 'r') as g:
        # Any processing of indocker here
        f.write(g.read())

    os.chmod(script_filename, 0o644)
    docker_settings['script_filename'] = script_filename

    # Drop privileges
    docker_launch_pwd = pwd.getpwnam('dockerlaunch')
    docker_launch_uid = docker_launch_pwd.pw_uid
    docker_launch_gid = docker_launch_pwd.pw_gid

    os.setgid(docker_launch_gid)
    # This pulls in the docker group (of which dockerlaunch should be a member)
    os.initgroups('dockerlaunch', docker_launch_gid)

    # http://www.gavinj.net/2012/06/building-python-daemon-process.html
    for location in (run_location, log_location):
        if not os.path.exists(location):
            # NOTE: while there is a mode arg, it's overridden by umask
            os.makedirs(location)
            os.chmod(location, 0o750)
            os.chown(location, docker_launch_uid, docker_launch_gid)

    socket_filename = os.path.join(run_location, socket_name)
    pid_filename = os.path.join(run_location, pid_name)

    logger = logging.getLogger("DockerLaunchLog")
    logger.setLevel(logging.INFO)
    formatter = logging.Formatter(
        "%(asctime)s - %(name)s - %(levelname)s - %(message)s")

    log_filename = os.path.join(log_location, log_name)

    if not os.path.exists(log_filename):
        open(log_filename, 'a').close()

    os.chown(log_filename, docker_launch_uid, docker_launch_gid)
    os.chmod(log_filename, 0o755)

    handler = logging.FileHandler(log_filename)
    handler.setFormatter(formatter)
    logger.addHandler(handler)

    docker_app = DockerLaunchApp(docker_settings,
                                 socket_filename,
                                 pid_filename,
                                 logger=logger)

    runner = DaemonRunner(docker_app)
    runner.daemon_context.uid = docker_launch_uid
    runner.daemon_context.gid = docker_launch_gid
    runner.daemon_context.umask = 0o027
    runner.daemon_context.files_preserve = [handler.stream, _find_urandom_fd()]
    runner.do_action()
Exemple #7
0
@zk.ChildrenWatch(ZK_ROOT + "stop")
def stop_watch(children):
    for job in children:
        logging.info("stop {}".format(job))
        zk.delete(ZK_ROOT + "stop/" + job)
        try:
            pid = int(zk.get(ZK_ROOT + "pid/" + job)[0].decode())
            zk.delete(ZK_ROOT + "pid/" + job)
            os.kill(pid, signal.SIGKILL)
        except NoNodeError as no_node_err:
            no_node_err.__traceback__


if __name__ == '__main__':
    try:
        zk.start()
    except KazooTimeoutError as e:
        e.__traceback__
        exit("can't connect zookeeper")
    if not zk.exists(ZK_ROOT + "start"):
        zk.create(ZK_ROOT + "start")
    if not zk.exists(ZK_ROOT + "stop"):
        zk.create(ZK_ROOT + "stop")
    if not zk.exists(ZK_ROOT + "pid"):
        zk.create(ZK_ROOT + "pid")
    input()
"""
if __name__ == '__main__':
    daemon_runner = DaemonRunner(Listen_kg())
    daemon_runner.do_action()
Exemple #8
0
                self.log.exception(
                    "The mail sending process failed. Have in mind that is required that the web service must be online."
                )

            finish_timestamp = datetime.today()
            self.stall_loop(start_timestamp, finish_timestamp)


parser = argparse.ArgumentParser(
    description='Starts or stops the seal daemon.')
parser.add_argument('command',
                    metavar='start/stop',
                    help='the command that should be executed on the daemon')
args = parser.parse_args()

logger_manager = LoggerManager()
log = logger_manager.getLogger()
log.info("Daemon action recived: '%s'", args.command)

loop_runner = LoopRunner()
daemon_runner = DaemonRunner(loop_runner)  # runner.DaemonRunner(loop_runner)
daemon_runner.daemon_context.files_preserve = [
    logger_manager.get_file_handler().stream
]
daemon_runner.do_action()

if ("start".__eq__(args.command.lower())):
    log.info("Daemon launched.")
else:
    log.info("Daemon stopped.")
Exemple #9
0
        try:
            query = self.mc_server.query()
        except:
            return
        current_players = set(query.players.names)
        diff = current_players - self.current_players
        self.current_players = current_players
        if len(diff) > 0:
            for p in diff:
                await self.channel.send(random.choice(LOGIN_MSG).format(p))


class steve_miner_bot:
    def __init__(self):
        self.stdin_path = tempfile.mkstemp()[1]
        self.stdout_path = tempfile.mkstemp()[1]
        self.stderr_path = tempfile.mkstemp()[1]
        self.pidfile_path = "/tmp/steve_miner_bot.pid"
        self.pidfile_timeout = 15

    def run(self):
        client = MyClient()
        client.run(os.environ['DISCORD_TOKEN'])


bot = DaemonRunner(steve_miner_bot())
bot.do_action()

# bot = steve_miner_bot()
# bot.run()
Exemple #10
0
    doorbell = DoorBell()
    webhook = IftttWebHook(ifttt_webhook_endpoint, ifttt_webhook_key,
                           'button_pressed')

    def get_button_pressed(self, hwsrc):
        logging.debug('in %s::%s', self.__class__.__name__,
                      'get_button_pressed')
        logging.debug("Processing %s" % hwsrc)
        for button in self.buttons:
            if hwsrc in button['hwsrc']:
                logging.info('%s button pressed' % button['name'])
                self.webhook.send_event(options={'value1': button['name']})
                # self.doorbell.chime()

    def get_arp_src(self, packet):
        logging.debug('in %s::%s', self.__class__.__name__, 'get_arp_src')
        hwsrc = packet[ARP].hwsrc
        self.get_button_pressed(hwsrc)

    def run(self):
        logging.basicConfig(filename=self.stdout_path, level=LOGLEVEL)
        logging.info("Starting")
        sniff(filter='arp', iface='en0', prn=self.get_arp_src)


if __name__ == '__main__':
    # buttonEvent = ButtonEvent()
    # buttonEvent.run()
    buttonEventLoop = DaemonRunner(ButtonEvent())
    buttonEventLoop.do_action()
Exemple #11
0
        SCHED.add_job(func=FUNC_PID,
                      args=('cn-north-1', ),
                      trigger=PID_TRIGGER)
        SCHED.add_job(func=FUNC_PID, args=('cn-east-2', ), trigger=PID_TRIGGER)
        SCHED.add_job(func=FUNC_PID,
                      args=('cn-south-1', ),
                      trigger=PID_TRIGGER)
        SCHED.add_job(func=FUNC_EIP,
                      args=('cn-north-1', ),
                      trigger=EIP_TRIGGER)
        SCHED.add_job(func=FUNC_EIP, args=('cn-east-2', ), trigger=EIP_TRIGGER)
        SCHED.add_job(func=FUNC_EIP,
                      args=('cn-south-1', ),
                      trigger=EIP_TRIGGER)

        SCHED.start()
        while True:
            time.sleep(10)
            log.logging.info('service is active.')


run = DaemonRunner(Tianlei())
run.do_action()
#if bbb=='config':
#    print(bbb)
#elif bbb=='service':
#    run = DaemonRunner(Tianlei())
#    run.do_action()
#else:
#    print('nonono')