Python signal.SIGWINCH Examples
The following are 30
code examples of signal.SIGWINCH().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
signal
, or try the search function
.
Example #1
Source File: test_screen.py From asciimatics with Apache License 2.0 | 6 votes |
def test_save_signal_state(self): """Tests that the signal state class works properly. The _SignalState class must set, save, and restore signals when needed. """ if sys.platform == "win32": self.skipTest("Windows does not have signals.") def dummy_handler(): """Assign dummy handler to an arbitrary signal.""" pass self.assertNotEqual(signal.getsignal(signal.SIGWINCH), dummy_handler) signal_state = _SignalState() signal_state.set(signal.SIGWINCH, dummy_handler) self.assertEqual(signal.getsignal(signal.SIGWINCH), dummy_handler) signal_state.restore() self.assertNotEqual(signal.getsignal(signal.SIGWINCH), dummy_handler)
Example #2
Source File: test_screen.py From asciimatics with Apache License 2.0 | 6 votes |
def test_signal(self): """ Check that signals are restored after using _CursesScreen """ if sys.platform == "win32": self.skipTest("Windows does not have signals.") def dummy_signal_handler(): """Dummy previous signal handler.""" pass outer_state = _SignalState() self.assertNotEqual(signal.getsignal(signal.SIGWINCH), dummy_signal_handler) outer_state.set(signal.SIGWINCH, dummy_signal_handler) self.assertEqual(signal.getsignal(signal.SIGWINCH), dummy_signal_handler) Screen.wrapper(self.signal_check) self.assertEqual(signal.getsignal(signal.SIGWINCH), dummy_signal_handler) outer_state.restore() self.assertNotEqual(signal.getsignal(signal.SIGWINCH), dummy_signal_handler)
Example #3
Source File: tracer.py From judge-server with GNU Affero General Public License v3.0 | 6 votes |
def _shocker_thread(self): # On Linux, ignored signals still cause a notification under ptrace. # Hence, we use SIGWINCH, harmless and ignored signal to make wait4 return # pt_process::monitor, causing time to be updated. # On FreeBSD, a signal must not be ignored in order for wait4 to return. # Hence, we swallow SIGSTOP, which should never be used anyway, and use it # force an update. wake_signal = signal.SIGSTOP if 'freebsd' in sys.platform else signal.SIGWINCH self._spawned_or_errored.wait() while not self._died.wait(1): if self.execution_time > self._time or self.wall_clock_time > self._wall_time: log.warning('Shocker activated and killed %d', self.pid) self.kill() self._is_tle = True break try: os.killpg(self.pid, wake_signal) except OSError: pass
Example #4
Source File: worker.py From lambda-text-extractor with Apache License 2.0 | 6 votes |
def init_signals(self): # Set up signals through the event loop API. self.loop.add_signal_handler(signal.SIGQUIT, self.handle_quit, signal.SIGQUIT, None) self.loop.add_signal_handler(signal.SIGTERM, self.handle_exit, signal.SIGTERM, None) self.loop.add_signal_handler(signal.SIGINT, self.handle_quit, signal.SIGINT, None) self.loop.add_signal_handler(signal.SIGWINCH, self.handle_winch, signal.SIGWINCH, None) self.loop.add_signal_handler(signal.SIGUSR1, self.handle_usr1, signal.SIGUSR1, None) self.loop.add_signal_handler(signal.SIGABRT, self.handle_abort, signal.SIGABRT, None) # Don't let SIGTERM and SIGUSR1 disturb active requests # by interrupting system calls signal.siginterrupt(signal.SIGTERM, False) signal.siginterrupt(signal.SIGUSR1, False)
Example #5
Source File: worker.py From Galaxy_Plugin_Bethesda with MIT License | 6 votes |
def init_signals(self) -> None: # Set up signals through the event loop API. self.loop.add_signal_handler(signal.SIGQUIT, self.handle_quit, signal.SIGQUIT, None) self.loop.add_signal_handler(signal.SIGTERM, self.handle_exit, signal.SIGTERM, None) self.loop.add_signal_handler(signal.SIGINT, self.handle_quit, signal.SIGINT, None) self.loop.add_signal_handler(signal.SIGWINCH, self.handle_winch, signal.SIGWINCH, None) self.loop.add_signal_handler(signal.SIGUSR1, self.handle_usr1, signal.SIGUSR1, None) self.loop.add_signal_handler(signal.SIGABRT, self.handle_abort, signal.SIGABRT, None) # Don't let SIGTERM and SIGUSR1 disturb active requests # by interrupting system calls signal.siginterrupt(signal.SIGTERM, False) signal.siginterrupt(signal.SIGUSR1, False)
Example #6
Source File: worker.py From lambda-text-extractor with Apache License 2.0 | 6 votes |
def init_signals(self): # Set up signals through the event loop API. self.loop.add_signal_handler(signal.SIGQUIT, self.handle_quit, signal.SIGQUIT, None) self.loop.add_signal_handler(signal.SIGTERM, self.handle_exit, signal.SIGTERM, None) self.loop.add_signal_handler(signal.SIGINT, self.handle_quit, signal.SIGINT, None) self.loop.add_signal_handler(signal.SIGWINCH, self.handle_winch, signal.SIGWINCH, None) self.loop.add_signal_handler(signal.SIGUSR1, self.handle_usr1, signal.SIGUSR1, None) self.loop.add_signal_handler(signal.SIGABRT, self.handle_abort, signal.SIGABRT, None) # Don't let SIGTERM and SIGUSR1 disturb active requests # by interrupting system calls signal.siginterrupt(signal.SIGTERM, False) signal.siginterrupt(signal.SIGUSR1, False)
Example #7
Source File: launchmany-curses.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def __init__(self, scrwin): self.messages = [] self.scroll_pos = 0 self.scroll_time = 0 self.scrwin = scrwin signal(SIGWINCH, self.winch_handler) self.changeflag = Event() self._remake_window() curses.use_default_colors()
Example #8
Source File: proxies_signals_test.py From dumb-init with MIT License | 5 votes |
def test_ignored_signals_are_not_proxied(): """Ensure dumb-init can ignore signals.""" rewrite_map = { signal.SIGTERM: signal.SIGQUIT, signal.SIGINT: 0, signal.SIGWINCH: 0, } with print_signals(_rewrite_map_to_args(rewrite_map)) as (proc, _): proc.send_signal(signal.SIGTERM) proc.send_signal(signal.SIGINT) assert proc.stdout.readline() == '{}\n'.format(signal.SIGQUIT).encode('ascii') proc.send_signal(signal.SIGWINCH) proc.send_signal(signal.SIGHUP) assert proc.stdout.readline() == '{}\n'.format(signal.SIGHUP).encode('ascii')
Example #9
Source File: pty.py From Kathara with GNU General Public License v3.0 | 5 votes |
def start(self): """ Start trapping WINCH signals and resizing the PTY. This method saves the previous WINCH handler so it can be restored on `stop()`. """ def handle(signum, frame): if signum == signal.SIGWINCH: self.pty.resize() self.original_handler = signal.signal(signal.SIGWINCH, handle)
Example #10
Source File: pty.py From Kathara with GNU General Public License v3.0 | 5 votes |
def stop(self): """ Stop trapping WINCH signals and restore the previous WINCH handler. """ if self.original_handler is not None: signal.signal(signal.SIGWINCH, self.original_handler)
Example #11
Source File: stdin.py From polysh with GNU General Public License v2.0 | 5 votes |
def interrupt_stdin_thread() -> None: """The stdin thread may be in raw_input(), get out of it""" dupped_stdin = os.dup(0) # Backup the stdin fd assert not the_stdin_thread.interrupt_asked # Sanity check the_stdin_thread.interrupt_asked = True # Not user triggered os.lseek(tempfile_fd, 0, 0) # Rewind in the temp file os.dup2(tempfile_fd, 0) # This will make raw_input() return pid = get_stdin_pid() os.kill(pid, signal.SIGWINCH) # Try harder to wake up raw_input() the_stdin_thread.out_of_raw_input.wait() # Wait for this return the_stdin_thread.interrupt_asked = False # Restore sanity os.dup2(dupped_stdin, 0) # Restore stdin os.close(dupped_stdin) # Cleanup
Example #12
Source File: layer.py From ueberzug with GNU General Public License v3.0 | 5 votes |
def reset_terminal_info(windows): """Signal handler for SIGWINCH. Resets the terminal information of all windows. """ windows.reset_terminal_info()
Example #13
Source File: step_definitions.py From dockerpty with Apache License 2.0 | 5 votes |
def step_impl(ctx, rows, cols): ctx.rows = int(rows) ctx.cols = int(cols) util.set_pty_size( ctx.pty, (ctx.rows, ctx.cols) ) time.sleep(1) os.kill(ctx.pid, signal.SIGWINCH)
Example #14
Source File: pty.py From dockerpty with Apache License 2.0 | 5 votes |
def start(self): """ Start trapping WINCH signals and resizing the PTY. This method saves the previous WINCH handler so it can be restored on `stop()`. """ def handle(signum, frame): if signum == signal.SIGWINCH: self.pty.resize() self.original_handler = signal.signal(signal.SIGWINCH, handle)
Example #15
Source File: pty.py From dockerpty with Apache License 2.0 | 5 votes |
def stop(self): """ Stop trapping WINCH signals and restore the previous WINCH handler. """ if self.original_handler is not None: signal.signal(signal.SIGWINCH, self.original_handler)
Example #16
Source File: pty.py From harpoon with MIT License | 5 votes |
def start(self): """ Start trapping WINCH signals and resizing the PTY. This method saves the previous WINCH handler so it can be restored on `stop()`. """ def handle(signum, frame): if signum == signal.SIGWINCH: self.pty.resize() self.original_handler = signal.signal(signal.SIGWINCH, handle)
Example #17
Source File: pty.py From harpoon with MIT License | 5 votes |
def stop(self): """ Stop trapping WINCH signals and restore the previous WINCH handler. """ if self.original_handler is not None: signal.signal(signal.SIGWINCH, self.original_handler)
Example #18
Source File: worker.py From sanic with MIT License | 5 votes |
def init_signals(self): # Set up signals through the event loop API. self.loop.add_signal_handler( signal.SIGQUIT, self.handle_quit, signal.SIGQUIT, None ) self.loop.add_signal_handler( signal.SIGTERM, self.handle_exit, signal.SIGTERM, None ) self.loop.add_signal_handler( signal.SIGINT, self.handle_quit, signal.SIGINT, None ) self.loop.add_signal_handler( signal.SIGWINCH, self.handle_winch, signal.SIGWINCH, None ) self.loop.add_signal_handler( signal.SIGUSR1, self.handle_usr1, signal.SIGUSR1, None ) self.loop.add_signal_handler( signal.SIGABRT, self.handle_abort, signal.SIGABRT, None ) # Don't let SIGTERM and SIGUSR1 disturb active requests # by interrupting system calls signal.siginterrupt(signal.SIGTERM, False) signal.siginterrupt(signal.SIGUSR1, False)
Example #19
Source File: bittorrent-curses.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def __init__(self, scrwin, errlist, doneflag, reread_config, ulrate): self.scrwin = scrwin self.errlist = errlist self.doneflag = doneflag signal(SIGWINCH, self.winch_handler) self.changeflag = DeferredEvent() self.done = False self.reread_config = reread_config self.ulrate = ulrate self.activity = '' self.status = '' self.progress = '' self.downRate = '---' self.upRate = '---' self.shareRating = '' self.seedStatus = '' self.peerStatus = '' self.errors = [] self.file = '' self.downloadTo = '' self.fileSize = '' self.numpieces = 0 self.spew_scroll_time = 0 self.spew_scroll_pos = 0 self._remake_window() curses.use_default_colors()
Example #20
Source File: test_keyboard.py From MARA_Framework with GNU Lesser General Public License v3.0 | 5 votes |
def test_kbhit_interrupted(): "kbhit() should not be interrupted with a signal handler." pid, master_fd = pty.fork() if pid is 0: try: cov = __import__('cov_core_init').init() except ImportError: cov = None # child pauses, writes semaphore and begins awaiting input global got_sigwinch got_sigwinch = False def on_resize(sig, action): global got_sigwinch got_sigwinch = True term = TestTerminal() signal.signal(signal.SIGWINCH, on_resize) read_until_semaphore(sys.__stdin__.fileno(), semaphore=SEMAPHORE) os.write(sys.__stdout__.fileno(), SEMAPHORE) with term.raw(): assert term.inkey(timeout=1.05) == u'' os.write(sys.__stdout__.fileno(), b'complete') assert got_sigwinch is True if cov is not None: cov.stop() cov.save() os._exit(0) with echo_off(master_fd): os.write(master_fd, SEND_SEMAPHORE) read_until_semaphore(master_fd) stime = time.time() os.kill(pid, signal.SIGWINCH) output = read_until_eof(master_fd) pid, status = os.waitpid(pid, 0) assert output == u'complete' assert os.WEXITSTATUS(status) == 0 assert math.floor(time.time() - stime) == 1.0
Example #21
Source File: loop.py From kitty with GNU General Public License v3.0 | 5 votes |
def __exit__(self, *a: Any) -> None: tuple(map(self.asycio_loop.remove_signal_handler, ( signal.SIGWINCH, signal.SIGINT, signal.SIGTERM)))
Example #22
Source File: loop.py From kitty with GNU General Public License v3.0 | 5 votes |
def __enter__(self) -> None: tuple(map(lambda x: self.asycio_loop.add_signal_handler(*x), ( (signal.SIGWINCH, self.on_winch), (signal.SIGINT, self.on_interrupt), (signal.SIGTERM, self.on_term) )))
Example #23
Source File: termio.py From django-gateone with GNU General Public License v3.0 | 5 votes |
def resize(self, rows, cols, em_dimensions=None, ctrl_l=True): """ Resizes the child process's terminal window to *rows* and *cols* by first sending it a TIOCSWINSZ event and then sending ctrl-l. If *em_dimensions* are provided they will be updated along with the rows and cols. The sending of ctrl-l can be disabled by setting *ctrl_l* to False. """ logging.debug( "Resizing term %s to rows: %s, cols: %s, em_dimensions=%s" % (self.term_id, rows, cols, em_dimensions)) if rows < 2: rows = 24 if cols < 2: cols = 80 self.rows = rows self.cols = cols self.term.resize(rows, cols, em_dimensions) # Sometimes the resize doesn't actually apply (for whatever reason) # so to get around this we have to send a different value than the # actual value we want then send our actual value. It's a bug outside # of Gate One that I have no idea how to isolate but this has proven to # be an effective workaround. import fcntl, termios s = struct.pack("HHHH", rows, cols, 0, 0) try: fcntl.ioctl(self.fd, termios.TIOCSWINSZ, s) except IOError: # Process already ended--no big deal return try: os.kill(self.pid, signal.SIGWINCH) # Send the resize signal except OSError: return # Process is dead. Can happen when things go quickly if ctrl_l: self.write(u'\x0c') # ctrl-l
Example #24
Source File: __init__.py From scylla with Apache License 2.0 | 5 votes |
def cmd_start_server(params): formatter = optparse.IndentedHelpFormatter() formatter.set_long_opt_delimiter(' ') usage = '%prog start-server script [options]' parser = optparse.OptionParser(usage=usage, option_list=option_list, formatter=formatter) (options, args) = parser.parse_args(params) config = _cmd_setup_server('start-server', args, vars(options)) if config['setup_only']: return executable = os.path.join(config['server_root'], 'apachectl') if config['isatty'] and sys.stdout.isatty(): process = None def handler(signum, frame): if process is None: sys.exit(1) else: if signum not in [signal.SIGWINCH]: os.kill(process.pid, signum) signal.signal(signal.SIGINT, handler) signal.signal(signal.SIGTERM, handler) signal.signal(signal.SIGHUP, handler) signal.signal(signal.SIGUSR1, handler) signal.signal(signal.SIGWINCH, handler) process = subprocess.Popen([executable, 'start', '-DFOREGROUND'], preexec_fn=os.setpgrp) process.wait() else: os.execl(executable, executable, 'start', '-DFOREGROUND')
Example #25
Source File: pty.py From deepWordBug with Apache License 2.0 | 5 votes |
def stop(self): """ Stop trapping WINCH signals and restore the previous WINCH handler. """ if self.original_handler is not None: signal.signal(signal.SIGWINCH, self.original_handler)
Example #26
Source File: pty.py From deepWordBug with Apache License 2.0 | 5 votes |
def start(self): """ Start trapping WINCH signals and resizing the PTY. This method saves the previous WINCH handler so it can be restored on `stop()`. """ def handle(signum, frame): if signum == signal.SIGWINCH: self.pty.resize() self.original_handler = signal.signal(signal.SIGWINCH, handle)
Example #27
Source File: app.py From openconnect-sso with GNU General Public License v3.0 | 5 votes |
def select_profile(profile_list): selection = await radiolist_dialog( title="Select AnyConnect profile", text=HTML( "The following AnyConnect profiles are detected.\n" "The selection will be <b>saved</b> and not asked again unless the <pre>--profile-selector</pre> command line option is used" ), values=[(p, p.name) for i, p in enumerate(profile_list)], ).run_async() asyncio.get_event_loop().remove_signal_handler(signal.SIGWINCH) if not selection: return selection logger.info("Selected profile", profile=selection.name) return selection
Example #28
Source File: test_screen.py From asciimatics with Apache License 2.0 | 5 votes |
def signal_check(self, screen): """Dummy callback for screen wrapper.""" self.assertEqual(signal.getsignal(signal.SIGWINCH), screen._resize_handler)
Example #29
Source File: test_keyboard.py From MARA_Framework with GNU Lesser General Public License v3.0 | 4 votes |
def test_kbhit_interrupted_nonetype_no_continue(): "kbhit() may be interrupted when _intr_continue=False with timeout None." pid, master_fd = pty.fork() if pid is 0: try: cov = __import__('cov_core_init').init() except ImportError: cov = None # child pauses, writes semaphore and begins awaiting input global got_sigwinch got_sigwinch = False def on_resize(sig, action): global got_sigwinch got_sigwinch = True term = TestTerminal() signal.signal(signal.SIGWINCH, on_resize) read_until_semaphore(sys.__stdin__.fileno(), semaphore=SEMAPHORE) os.write(sys.__stdout__.fileno(), SEMAPHORE) with term.raw(): term.inkey(timeout=None, _intr_continue=False) os.write(sys.__stdout__.fileno(), b'complete') assert got_sigwinch is True if cov is not None: cov.stop() cov.save() os._exit(0) with echo_off(master_fd): os.write(master_fd, SEND_SEMAPHORE) read_until_semaphore(master_fd) stime = time.time() time.sleep(0.05) os.kill(pid, signal.SIGWINCH) os.write(master_fd, b'X') output = read_until_eof(master_fd) pid, status = os.waitpid(pid, 0) assert output == u'complete' assert os.WEXITSTATUS(status) == 0 assert math.floor(time.time() - stime) == 0.0
Example #30
Source File: test_keyboard.py From MARA_Framework with GNU Lesser General Public License v3.0 | 4 votes |
def test_kbhit_interrupted_no_continue(): "kbhit() may be interrupted when _intr_continue=False." pid, master_fd = pty.fork() if pid is 0: try: cov = __import__('cov_core_init').init() except ImportError: cov = None # child pauses, writes semaphore and begins awaiting input global got_sigwinch got_sigwinch = False def on_resize(sig, action): global got_sigwinch got_sigwinch = True term = TestTerminal() signal.signal(signal.SIGWINCH, on_resize) read_until_semaphore(sys.__stdin__.fileno(), semaphore=SEMAPHORE) os.write(sys.__stdout__.fileno(), SEMAPHORE) with term.raw(): term.inkey(timeout=1.05, _intr_continue=False) os.write(sys.__stdout__.fileno(), b'complete') assert got_sigwinch is True if cov is not None: cov.stop() cov.save() os._exit(0) with echo_off(master_fd): os.write(master_fd, SEND_SEMAPHORE) read_until_semaphore(master_fd) stime = time.time() time.sleep(0.05) os.kill(pid, signal.SIGWINCH) output = read_until_eof(master_fd) pid, status = os.waitpid(pid, 0) assert output == u'complete' assert os.WEXITSTATUS(status) == 0 assert math.floor(time.time() - stime) == 0.0