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")
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)
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
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()
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")
def shutdown(server): service.stop() server.stop() IOLoop.instance().stop() app_log.info(r'Shutdown http server')
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()
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)
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)
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)
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)