當前位置: 首頁>>代碼示例>>Python>>正文


Python signal.pause方法代碼示例

本文整理匯總了Python中signal.pause方法的典型用法代碼示例。如果您正苦於以下問題:Python signal.pause方法的具體用法?Python signal.pause怎麽用?Python signal.pause使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在signal的用法示例。


在下文中一共展示了signal.pause方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_signals

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def test_signals(self):
        signalled_all.acquire()
        self.spawnSignallingThread()
        signalled_all.acquire()
        # the signals that we asked the kernel to send
        # will come back, but we don't know when.
        # (it might even be after the thread exits
        # and might be out of order.)  If we haven't seen
        # the signals yet, send yet another signal and
        # wait for it return.
        if signal_blackboard[signal.SIGUSR1]['tripped'] == 0 \
           or signal_blackboard[signal.SIGUSR2]['tripped'] == 0:
            try:
                signal.alarm(1)
                signal.pause()
            finally:
                signal.alarm(0)

        self.assertEqual( signal_blackboard[signal.SIGUSR1]['tripped'], 1)
        self.assertEqual( signal_blackboard[signal.SIGUSR1]['tripped_by'],
                           thread.get_ident())
        self.assertEqual( signal_blackboard[signal.SIGUSR2]['tripped'], 1)
        self.assertEqual( signal_blackboard[signal.SIGUSR2]['tripped_by'],
                           thread.get_ident())
        signalled_all.release() 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:27,代碼來源:test_threadsignals.py

示例2: run

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def run(self):
        """
        Run guest main thread
        """
        global virt
        global exiting
        virt = VirtioGuestPosix()
        slave = Thread(target=worker, args=(virt,))
        slave.start()
        signal.signal(signal.SIGUSR1, sigusr_handler)
        signal.signal(signal.SIGALRM, sigusr_handler)
        while not exiting:
            signal.alarm(1)
            signal.pause()
            catch = virt.catching_signal()
            if catch:
                signal.signal(signal.SIGIO, virt)
            elif catch is False:
                signal.signal(signal.SIGIO, signal.SIG_DFL)
            if catch is not None:
                virt.use_config.set()
        print("PASS: guest_exit")
        sys.exit(0) 
開發者ID:avocado-framework,項目名稱:avocado-vt,代碼行數:25,代碼來源:virtio_console_guest.py

示例3: test_signals

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def test_signals(self):
        signalled_all.acquire()
        self.spawnSignallingThread()
        signalled_all.acquire()
        # the signals that we asked the kernel to send
        # will come back, but we don't know when.
        # (it might even be after the thread exits
        # and might be out of order.)  If we haven't seen
        # the signals yet, send yet another signal and
        # wait for it return.
        if signal_blackboard[signal.SIGUSR1]['tripped'] == 0 \
           or signal_blackboard[signal.SIGUSR2]['tripped'] == 0:
            signal.alarm(1)
            signal.pause()
            signal.alarm(0)

        self.assertEqual( signal_blackboard[signal.SIGUSR1]['tripped'], 1)
        self.assertEqual( signal_blackboard[signal.SIGUSR1]['tripped_by'],
                           thread.get_ident())
        self.assertEqual( signal_blackboard[signal.SIGUSR2]['tripped'], 1)
        self.assertEqual( signal_blackboard[signal.SIGUSR2]['tripped_by'],
                           thread.get_ident())
        signalled_all.release() 
開發者ID:dxwu,項目名稱:BinderFilter,代碼行數:25,代碼來源:test_threadsignals.py

示例4: wait_for_shutdown_event

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def wait_for_shutdown_event(self):
        self._event = threading.Event()

        # Since signal.pause() is not avaialble on windows, use event.wait()
        # with a timeout to catch KeyboardInterrupt. Without timeout, it"s
        # not possible to catch KeyboardInterrupt because event.wait() is
        # a blocking call without timeout. The if condition checks if the os
        # is windows.
        if os.name == "nt":
            while True:
                try:
                    self._event.wait(1)
                except (KeyboardInterrupt, SystemExit) as e:
                    print("Controller shutdown event: {0}".format(str(e)))
                    break
        else:
            for sig in [signal.SIGINT, signal.SIGTERM]:
                signal.signal(sig, CFX.__handler)
            # sleeps until signal is received
            # pylint: disable=no-member
            signal.pause() 
開發者ID:ipop-project,項目名稱:Controllers,代碼行數:23,代碼來源:CFx.py

示例5: main

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def main(args):
    print "Starting cluster simulation..."
    simulator = ClusterSimulation.Simulator.createGlobalSimulator()
    simulator.startService()
    simulator.desirePublisher.desireNumberOfWorkers(1)

    def signal_handler(sig, _):
        signal_name = '(unknown)'
        if sig == signal.SIGINT:
            signal_name = 'SIGINT'
        elif sig == signal.SIGTERM:
            signal_name = 'SIGTERM'

        print 'Received ', signal_name, 'signal. Exiting.'
        simulator.stopService()
        sys.exit(0)

    signal.signal(signal.SIGINT, signal_handler)
    signal.signal(signal.SIGTERM, signal_handler)
    print "Press Ctrl+C to exit."
    signal.pause() 
開發者ID:ufora,項目名稱:ufora,代碼行數:23,代碼來源:simulate_cluster.py

示例6: startSharedState

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def startSharedState(args):
        if parsed.cacheDir:
            logging.info("Shared state cache directory: %s", parsed.cacheDir)
            Setup.config().sharedStateCache = parsed.cacheDir

        service = SharedStateService.SharedStateService(callbackScheduler)

        service.startService()
        service.blockUntilListening()


        def handleSigTerm(signum, frame):
            logging.info("SIGTERM received - shutting down")
            service.stopService()

        signal.signal(signal.SIGTERM, handleSigTerm)

        signal.pause()
        logging.info("process exiting") 
開發者ID:ufora,項目名稱:ufora,代碼行數:21,代碼來源:sharedStateMainline.py

示例7: main

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def main(args):
    print "ufora-worker starting"
    setup = defaultSetup()
    with Setup.PushSetup(setup):
        setup.config.configureLoggingForBackgroundProgram()

        worker = createService(args)
        worker.startService(None)

        def signal_handler(sig, _):
            signal_name = '(unknown)'
            if sig == signal.SIGINT:
                signal_name = 'SIGINT'
            elif sig == signal.SIGTERM:
                signal_name = 'SIGTERM'

            print 'Received ', signal_name, 'signal. Exiting.'

            worker.stopService()
            sys.exit(0)

        signal.signal(signal.SIGINT, signal_handler)
        signal.signal(signal.SIGTERM, signal_handler)
        print "Press Ctrl+C to exit."
        signal.pause() 
開發者ID:ufora,項目名稱:ufora,代碼行數:27,代碼來源:ufora-worker.py

示例8: main

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def main(args):
    print "ufora-gateway starting"
    worker = createService(args)
    worker.startService(None)

    def signal_handler(sig, _):
        signal_name = '(unknown)'
        if sig == signal.SIGINT:
            signal_name = 'SIGINT'
        elif sig == signal.SIGTERM:
            signal_name = 'SIGTERM'

        print 'Received ', signal_name, 'signal. Exiting.'

        worker.stopService()
        sys.exit(0)

    signal.signal(signal.SIGINT, signal_handler)
    signal.signal(signal.SIGTERM, signal_handler)
    print "Press Ctrl+C to exit."
    signal.pause() 
開發者ID:ufora,項目名稱:ufora,代碼行數:23,代碼來源:ufora-gateway.py

示例9: test_z_alarm

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def test_z_alarm(self):
        global s
        signal.signal(signal.SIGALRM, catcher)
        print('Setting alarm for 0.3 seconds')
        start = s = time.time()
        itimer.alarm(0.3)
        signal.pause()
        self.assertAlmostEqual(time.time()-start, 0.3, places=2)

        print('Setting alarm for 1.1 seconds')
        start = s = time.time()
        itimer.alarm(1.1)
        signal.pause()
        self.assertAlmostEqual(time.time()-start, 1.1, places=2)

        print('Setting alarm for 5.5 seconds')
        start = s = time.time()
        itimer.alarm(5.5)
        signal.pause()
        self.assertAlmostEqual(time.time()-start, 5.5, places=2)
        itimer.alarm(0)
        olddelay, oldinterval = itimer.getitimer(itimer.ITIMER_REAL)
        self.assertEqual(olddelay, 0.0)
        self.assertEqual(oldinterval, 0.0) 
開發者ID:kdart,項目名稱:pycopia,代碼行數:26,代碼來源:test.py

示例10: main

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def main(listen_addrs=['127.0.0.1:9901']):
    s = create_server(listen_addrs)
    print("Server created on", listen_addrs)
    s.start()
    print("Server started")
    import signal
    old1 = signal.signal(signal.SIGINT, signal_handler)
    old2 = signal.signal(signal.SIGTERM, signal_handler)
    import time
    # signal.pause is not valid in windows
    try:
        while True:
            time.sleep(3600 * 24)
    except QuitException:
        print("Quit server")
        shutdown_event = s.stop(5)
        shutdown_event.wait()
    finally:
        signal.signal(signal.SIGINT, old1)
        signal.signal(signal.SIGTERM, old2) 
開發者ID:hubo1016,項目名稱:aiogrpc,代碼行數:22,代碼來源:server.py

示例11: pause_children

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def pause_children(self, names=None):
        # send pause signal to alive children
        if names is None:
            names = self.conns_from_children.keys()

        logger.debug("Pausing %s", str(names))

        for name in names:
            assert name in self.child_states  # check it's a real child
            proc = self.child_processes[name]
            if proc.is_alive():
                try:
                    process = psutil.Process(pid=proc.pid)
                    try:
                        for child in process.children(recursive=True):
                            try:
                                child.send_signal(signal.SIGTSTP)
                            except (psutil.NoSuchProcess, psutil.AccessDenied, IOError):
                                pass
                    except (psutil.NoSuchProcess, psutil.AccessDenied, IOError) as e:
                        logger.warn("Error %s getting children for pause for child %s", e.strerror, name)
                    process.send_signal(signal.SIGTSTP)
                    logger.info("Paused %s", name)
                except (psutil.NoSuchProcess, psutil.AccessDenied, IOError):  # child may have terminated
                    pass 
開發者ID:jamesrobertlloyd,項目名稱:automl-phase-2,代碼行數:27,代碼來源:agent.py

示例12: sleep

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def sleep(self, seconds):
        """Sleeps for at most the specified number of seconds while also handling signals.

        Python does not do a great job of handling signals quickly when you invoke the normal time.sleep().
        This method is a Unix-specific implementation of a sleep that should do better quickly handling signals while
        sleeping.

        This method may return earlier than the requested number of seconds if a signal is received.

        @param seconds: The number of seconds to sleep for.
        """

        # We schedule an alarm signal for x=seconds out in the future.
        # noinspection PyUnusedLocal
        def handle_alarm(signal_num, frame):
            pass

        signal.signal(signal.SIGALRM, handle_alarm)
        signal.alarm(seconds)

        # Wait for either the alarm to go off or for us to receive a SIGINT.
        signal.pause()

        # Remove the alarm if it is still pending.
        signal.alarm(0) 
開發者ID:scalyr,項目名稱:scalyr-agent-2,代碼行數:27,代碼來源:platform_posix.py

示例13: stop

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def stop(self):
        """Spops all animation"""
        self._setup_gpio()

        if self.fading:
            self.fader.stop()
            self.fading = False

        if self.pulsing:
            self.pulsing = False
            self.pulser.pause()

        if self.blinking:
            self.blinking = False

        if self._value:
            self.duty_cycle(100)
        else:
            self.duty_cycle(0)

        return True 
開發者ID:pimoroni,項目名稱:explorer-hat,代碼行數:23,代碼來源:__init__.py

示例14: serve_forever

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def serve_forever(self):
        # we could join on the threads, but join blocks all interrupts (including
        # ctrl+c, so just spin here
        # noinspection PyBroadException
        try:
            def sig_manager(sig, callstack):
                self.stop()
                self._log.info('*** signal %d received.' % sig)
                return signal.SIG_IGN
            prev_handler = signal.signal(signal.SIGINT, sig_manager)
        except Exception:
            # signal.pause() is missing for Windows; wait 1ms and loop instead
            pass
        except KeyboardInterrupt:
            pass
        while self._alive:
            try:
                time.sleep(1)
            except Exception:
                self._alive = False
        self._log.debug(' ** serve_forever() quitting') 
開發者ID:dddomodossola,項目名稱:remi,代碼行數:23,代碼來源:server.py

示例15: pause_for_signal

# 需要導入模塊: import signal [as 別名]
# 或者: from signal import pause [as 別名]
def pause_for_signal():
    """
    Pauses the current thread in a way that can still receive signals like SIGINT from Ctrl+C.

    Implementation notes:
     - Linux uses signal.pause()
     - Windows uses a loop that sleeps for 1 ms at a time, allowing signals
       to interrupt the thread fairly quickly.

    :return: None
    :rtype: None
    """
    try:
        while True:
            signal.pause()
    except AttributeError:
        # signal.pause() is missing for Windows; wait 1ms and loop instead
        while True:
            time.sleep(0.001) 
開發者ID:nccgroup,項目名稱:fuzzowski,代碼行數:21,代碼來源:helpers.py


注:本文中的signal.pause方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。