当前位置: 首页>>代码示例>>Python>>正文


Python signal.SIGTTOU属性代码示例

本文整理汇总了Python中signal.SIGTTOU属性的典型用法代码示例。如果您正苦于以下问题:Python signal.SIGTTOU属性的具体用法?Python signal.SIGTTOU怎么用?Python signal.SIGTTOU使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在signal的用法示例。


在下文中一共展示了signal.SIGTTOU属性的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def __init__(self, name, pid_dir='/var/run', signals=None):
        """
        Constructor.

        ``name`` is a string that identifies the daemon. The name is
        used for the name of the daemon process, the PID file and for
        the messages to syslog.

        ``pid_dir`` is the directory in which the PID file is stored.

        ``signals`` list of operating signals, that should be available
        for use with :py:meth:`.send_signal`, :py:meth:`.got_signal`,
        :py:meth:`.wait_for_signal`, and :py:meth:`.check_signal`. Note
        that SIGTERM is always supported, and that SIGTTIN, SIGTTOU, and
        SIGTSTP are never supported.
        """
        self.name = name
        self.pid_file = _PIDFile(os.path.join(pid_dir, name + '.pid'))
        self._signal_events = {int(s): threading.Event()
                               for s in ((signals or []) + [signal.SIGTERM])}
        self.logger = logging.getLogger(name)
        if not self.logger.handlers:
            self.logger.addHandler(logging.NullHandler())
        self.files_preserve = [] 
开发者ID:torfsen,项目名称:service,代码行数:26,代码来源:__init__.py

示例2: make_default_signal_map

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def make_default_signal_map():
    """ Make the default signal map for this system.

        The signals available differ by system. The map will not
        contain any signals not defined on the running system.

        """
    name_map = {
        'SIGTSTP': None,
        'SIGTTIN': None,
        'SIGTTOU': None,
        'SIGTERM': 'terminate',
        }
    signal_map = dict(
        (getattr(signal, name), target)
        for (name, target) in name_map.items()
        if hasattr(signal, name))

    return signal_map 
开发者ID:blackye,项目名称:luscan-devel,代码行数:21,代码来源:daemon.py

示例3: make_default_signal_map

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def make_default_signal_map():
    """ Make the default signal map for this system.

        The signals available differ by system. The map will not
        contain any signals not defined on the running system.

        """
    name_map = {
        'SIGTSTP': None,
        'SIGTTIN': None,
        'SIGTTOU': None,
        'SIGTERM': 'terminate',
    }
    signal_map = dict(
        (getattr(signal, name), target)
        for (name, target) in name_map.items()
        if hasattr(signal, name))

    return signal_map 
开发者ID:candlepin,项目名称:virt-who,代码行数:21,代码来源:daemon.py

示例4: _handle_sigttou

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def _handle_sigttou(self, signum, frame):
        #Had some issues that when memory corruptions occured in a subprocess
        #(no matter if shielded by multiprocess and subprocess module), 
        #that a SIGTTOU was sent to the entire Python main process.
        #According to https://en.wikipedia.org/wiki/SIGTTOU this
        #results in the process being stopped (and it looks like SIGSTP on the cmd):
        #[1]+  Stopped                 ./AflCrashAnalyzer.py
        #Of course we don't want that. Debugging was hard but then
        #realized after this program was stopped:
        #$ echo $?
        #150
        #So that's SIGTTOU on Linux at least.
        #This handler will prevent the process to stop.
        self.sigttou_flag = True
        try:
            self.current_process.kill()
        except OSError as ose:
            Logger.info("Kill failed. Sometimes the process exactly exits before we try to kill it... coward. Nothing to worry about.", ose) 
开发者ID:floyd-fuh,项目名称:afl-crash-analyzer,代码行数:20,代码来源:Executer.py

示例5: test_default_rewrites_can_be_overriden_with_setsid_enabled

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def test_default_rewrites_can_be_overriden_with_setsid_enabled():
    """In setsid mode, dumb-init should allow overwriting the default
    rewrites (but still suspend itself).
    """
    rewrite_map = {
        signal.SIGTTIN: signal.SIGTERM,
        signal.SIGTTOU: signal.SIGINT,
        signal.SIGTSTP: signal.SIGHUP,
    }
    with print_signals(_rewrite_map_to_args(rewrite_map)) as (proc, _):
        for send, expect_receive in rewrite_map.items():
            assert process_state(proc.pid) in ['running', 'sleeping']
            proc.send_signal(send)

            assert proc.stdout.readline() == '{}\n'.format(expect_receive).encode('ascii')
            os.waitpid(proc.pid, os.WUNTRACED)
            assert process_state(proc.pid) == 'stopped'

            proc.send_signal(signal.SIGCONT)
            assert proc.stdout.readline() == '{}\n'.format(signal.SIGCONT).encode('ascii')
            assert process_state(proc.pid) in ['running', 'sleeping'] 
开发者ID:Yelp,项目名称:dumb-init,代码行数:23,代码来源:proxies_signals_test.py

示例6: _kill_old_workers

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def _kill_old_workers(self, count: int) -> None:
        """
        Send signal to kill the worker.

        :param count: The number of workers to kill
        """
        for _ in range(count):
            count -= 1
            # TTOU: Decrement the number of processes by one
            self.gunicorn_master_proc.send_signal(signal.SIGTTOU)
            self._wait_until_true(
                lambda: self.num_workers_expected + count == self._get_num_workers_running(),
                timeout=self.master_timeout) 
开发者ID:apache,项目名称:airflow,代码行数:15,代码来源:webserver_command.py

示例7: is_stop_signal

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def is_stop_signal(signum):
    return signum in (signal.SIGSTOP, signal.SIGTSTP,
                      signal.SIGTTIN, signal.SIGTTOU) 
开发者ID:pinterest,项目名称:ptracer,代码行数:5,代码来源:ptrace.py

示例8: _stop_backdoor_server

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def _stop_backdoor_server(signum, frame):
    def _stop():
        server = ServeBackdoor.get_instance()
        if server:
            logger.info('stopping backdoor server on %r...', server.addr)
            server.kill()

    ignore_sig(signal.SIGTTOU)
    gevent.spawn(_stop()) 
开发者ID:huskar-org,项目名称:huskar,代码行数:11,代码来源:signal.py

示例9: run_command

# 需要导入模块: import signal [as 别名]
# 或者: from signal import SIGTTOU [as 别名]
def run_command(self, command, timeout=None, env={}, stdout=file("/dev/null"), stderr=file("/dev/null")):
        #TODO: make stdout / stderr configurable
        if not timeout:
            timeout = self.config.run_timeout
        process = subprocess.Popen(command, stdin=None, shell=False, stdout=stdout, stderr=stderr)
        self.current_process = process
        signal.signal(signal.SIGALRM, self._handle_alarm)
        #We also had a problem that memory corruptions...
        signal.signal(signal.SIGTTOU, self._handle_sigttou)
        signal.alarm(timeout)
        self.timeout_flag = False
        self.sigttou_flag = False
        #TODO: get rid of magic number
        ret_signal = self.TIMEOUT_SIGNAL
        #blocking call:
        process.communicate()
        signal.alarm(0)
        #This line is reached when timeout_flag was set by _handle_alarm if it was called
        if self.timeout_flag:
            Logger.debug("Process was killed as it exceeded the time limit", debug_level=3)
            ret_signal = self.TIMEOUT_SIGNAL
        elif self.sigttou_flag:
            Logger.debug("Some memory corruption resulted in a SIGTTOU signal being thrown (usually stops process). We caught it.", debug_level=3)
            ret_signal = signal.SIGTTOU
        else:
            ret_signal = process.returncode
        return ret_signal 
开发者ID:floyd-fuh,项目名称:afl-crash-analyzer,代码行数:29,代码来源:Executer.py


注:本文中的signal.SIGTTOU属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。