Пример #1
0
def _service(action):
    """
    Manages a local Papertrail service.

    Use the PT_ROOT environment variable to override the default installation path.
    """
    if action == 'start':
        if service.get_status() is not None:
            click.echo("PaperTrail already started")
        else:
            if service.start():
                click.echo('\nStarted PaperTrail')
    elif action == 'stop':
        if service.stop():
            click.echo('\nStopped PaperTrail')
        else:
            click.echo('PaperTrail is not running')
    elif action == 'restart':
        service.stop()
        service.start()
    elif action == 'status':
        status = service.get_status()
        if status is not None:
            click.echo("PaperTrail started (%s)" % str(status))
        else:
            click.echo("PaperTrail not started")
Пример #2
0
def main():
    import sys

    if len(sys.argv) < 2:
        sys.exit('Syntax: %s COMMAND' % sys.argv[0])

    cmd = sys.argv[1]
    sys.argv.remove(cmd)

    service = Service('example1', pid_dir='/tmp')

    if cmd == 'start':
        service.start()
    elif cmd == 'stop':
        service.stop()
        stop_function()
    elif cmd == 'restart':
        service.stop()
        stop_function()
        while service.is_running():
            time.sleep(0.1)
        service.start()
    elif cmd == 'status':
        if service.is_running():
            print "Service is running."
        else:
            print "Service is not running."
    else:
        sys.exit('Unknown command "%s".' % cmd)
Пример #3
0
 def test_service_start_stop(self):
     """
     Test we can start stop and query the web app service
     """
     # Stopping the service will unlink the pid file
     with tempfile.NamedTemporaryFile(delete=False) as pid_f:
         process = Process(target=service.start,
                           args=(
                               pid_f.name,
                               9090,
                               os.path.join(self._fixtures_path,
                                            "settings.py"),
                           ))
         process.start()
         self.assertIsNotNone(process.pid)
         process.join(1)
         # Make sure the daemon has the time to start and store its pid in
         # the pid file.
         time.sleep(1)
         try:
             self.assertIsNotNone(service.status(pid_f.name))
             service.stop(pid_f.name)
             self.assertIsNone(service.status(pid_f.name))
             self.assertFalse(os.path.exists(pid_f.name))
         except Exception:
             print("Process exit code {}".format(process.exitcode))
             raise
Пример #4
0
def testall():
    service.start()

    service.on_battery_event(on_battery)
    service.on_rotation_event(on_rotation)

    service.identify()
    time.sleep(2)
    service.keyevent('KEYCODE_HOME')
    time.sleep(2)

    print 'wifi is', service.get_wifi_status()
    print 'disable', service.set_wifi_enabled(False)
    print 'wifi is', service.get_wifi_status()
    print 'enable', service.set_wifi_enabled(True)
    print 'wifi is', service.get_wifi_status()
    time.sleep(1)

    print 'set rotation'
    print service.set_rotation(1)
    time.sleep(1)
    print service.set_rotation(2)
    time.sleep(1)
    print service.set_rotation(3)
    time.sleep(1)
    print service.set_rotation(0)
    time.sleep(1)

    print 'display', service.get_display()
    time.sleep(1)

    print 'test type, please input'
    test_type()

    service.stop()
Пример #5
0
def remove_cache():
    """Remove apt-cacher-ng caches, which get corrupted quite easily"""
    import service, time
    service.stop("apt-cacher-ng")
    time.sleep(2)
    sudo("rm -rf /var/cache/apt-cacher-ng/*")
    time.sleep(2)
    service.start("apt-cacher-ng")
Пример #6
0
def shutdown(server):
    
    service.stop()
    
    server.stop()
    
    IOLoop.instance().stop()
    
    app_log.info(r'Shutdown http server')
Пример #7
0
def main():
    service.start()

    root = tk.Tk()
    root.resizable(0, 0)
    root.title('STF Input')
    sv = tk.StringVar()

    if sys.platform == 'win32':
        backspace = '\x08'
    else:
        backspace = '\x7f'

    def send(event, sv=sv):
        char = event.char
        if not char:
            return
        text = sv.get()
        if char == '\r' and text:  # use <Return> to input
            service.type(text)
            sv.set('')
            return
        if char == backspace and text:  #  use <Backspace> to delete, <Del> not avaialable.
            sv.set('')
            return
        if char == '\x16':  # skip <Ctrl-V>
            service.keyboard(char)
            sv.set('')
            return 'break'
        if char in keycode.KEYBOARD_KEYS or char in keycode.CTRLED_KEYS:
            service.keyboard(char)

    entry = tk.Entry(root, textvariable=sv)
    entry.pack()
    entry.focus_set()
    entry.bind('<Key>', send)

    state = [1]

    def toggle(root=root, entry=entry):
        if state[0] == 0:
            root.deiconify()
            entry.focus_set()
            state[0] = 1
        else:
            root.withdraw()
            state[0] = 0

    register_hotkey(root, 'Ctrl-Alt-Z', toggle)  # not very well with IME

    try:
        root.mainloop()
    finally:
        service.stop()
Пример #8
0
def main():
    service.start()

    root = tk.Tk()
    root.resizable(0, 0)
    root.title('STF Input')
    sv = tk.StringVar()

    if sys.platform == 'win32':
        backspace = '\x08'
    else:
        backspace = '\x7f'

    def send(event, sv=sv):
        char = event.char
        if not char:
            return
        text = sv.get()
        if char == '\r' and text: # use <Return> to input
            service.type(text)
            sv.set('')
            return
        if char == backspace and text: #  use <Backspace> to delete, <Del> not avaialable.
            sv.set('')
            return
        if char == '\x16': # skip <Ctrl-V>
            service.keyboard(char)
            sv.set('')
            return 'break'
        if char in keycode.KEYBOARD_KEYS or char in keycode.CTRLED_KEYS:
            service.keyboard(char)

    entry = tk.Entry(root, textvariable=sv)
    entry.pack()
    entry.focus_set()
    entry.bind('<Key>', send)

    state = [1]
    def toggle(root=root, entry=entry):
        if state[0] == 0:
            root.deiconify()
            entry.focus_set()
            state[0] = 1
        else:
            root.withdraw()
            state[0] = 0

    register_hotkey(root, 'Ctrl-Alt-Z', toggle) # not very well with IME

    try:
        root.mainloop()
    finally:
        service.stop()
Пример #9
0
    def test_builtin_log_handlers_file_handles_are_preserved(self):
        """
        Test that file handles of built-in log handlers are preserved.
        """
        class LoggingService(BasicService):
            def __init__(self):
                super(LoggingService, self).__init__()
                self.f = tempfile.NamedTemporaryFile(delete=False)
                self.f.close()
                self.logger.addHandler(logging.FileHandler(self.f.name))
            def run(self):
                self.logger.warn('foobar')
                self.wait_for_sigterm()

        service = LoggingService()
        start(service)
        service.stop(block=1)
        ok(os.path.isfile(service.f.name))
        with open(service.f.name, 'r') as f:
            ok('foobar' in f.read())
        os.unlink(f.name)
Пример #10
0
    def test_files_preserve(self):
        """
        Test file handle preservation.
        """
        class FileHandleService(BasicService):
            def __init__(self):
                super(FileHandleService, self).__init__()
                self.f = tempfile.NamedTemporaryFile(mode='wt', delete=False)
                self.files_preserve = [self.f]
            def run(self):
                self.f.write('foobar')
                self.f.close()
                self.wait_for_sigterm()

        service = FileHandleService()
        start(service)
        service.stop(block=1)
        ok(os.path.isfile(service.f.name))
        with open(service.f.name, 'r') as f:
            eq(f.read(), 'foobar')
        os.unlink(f.name)
Пример #11
0
    def test_builtin_log_handlers_file_handles_are_preserved(self):
        """
        Test that file handles of built-in log handlers are preserved.
        """
        class LoggingService(BasicService):
            def __init__(self):
                super(LoggingService, self).__init__()
                self.f = tempfile.NamedTemporaryFile(delete=False)
                self.f.close()
                self.logger.addHandler(logging.FileHandler(self.f.name))
            def run(self):
                self.logger.warn('foobar')
                self.wait_for_sigterm()

        service = LoggingService()
        start(service)
        try:
            service.stop(block=TIMEOUT)
            ok(os.path.isfile(service.f.name))
            with open(service.f.name, 'r') as f:
                ok('foobar' in f.read())
        finally:
            os.unlink(service.f.name)
Пример #12
0
    def test_files_preserve(self):
        """
        Test file handle preservation.
        """
        class FileHandleService(BasicService):
            def __init__(self):
                super(FileHandleService, self).__init__()
                self.f = tempfile.NamedTemporaryFile(mode='wt', delete=False)
                self.files_preserve = [self.f]
            def run(self):
                self.f.write('foobar')
                self.f.close()
                self.wait_for_sigterm()

        service = FileHandleService()
        start(service)
        try:
            service.stop(block=TIMEOUT)
            ok(os.path.isfile(service.f.name))
            with open(service.f.name, 'r') as f:
                eq(f.read(), 'foobar')
        finally:
            os.unlink(f.name)