Python twisted.internet.error.ProcessExitedAlready() Examples
The following are 30
code examples of twisted.internet.error.ProcessExitedAlready().
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
twisted.internet.error
, or try the search function
.
Example #1
Source File: test_process.py From learn_python3_spider with MIT License | 6 votes |
def test_openingTTY(self): scriptPath = b"twisted.test.process_tty" p = Accumulator() d = p.endedDeferred = defer.Deferred() reactor.spawnProcess(p, pyExe, [pyExe, b"-u", b"-m", scriptPath], env=properEnv, usePTY=self.usePTY) p.transport.write(b"hello world!\n") def processEnded(ign): self.assertRaises( error.ProcessExitedAlready, p.transport.signalProcess, 'HUP') self.assertEqual( p.outF.getvalue(), b"hello world!\r\nhello world!\r\n", ("Error message from process_tty " "follows:\n\n%s\n\n" % (p.outF.getvalue(),))) return d.addCallback(processEnded)
Example #2
Source File: process.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def signalProcess(self, signalID): """ Send the given signal C{signalID} to the process. It'll translate a few signals ('HUP', 'STOP', 'INT', 'KILL', 'TERM') from a string representation to its int value, otherwise it'll pass directly the value provided @type signalID: C{str} or C{int} """ if signalID in ('HUP', 'STOP', 'INT', 'KILL', 'TERM'): signalID = getattr(signal, 'SIG%s' % (signalID,)) if self.pid is None: raise ProcessExitedAlready() try: os.kill(self.pid, signalID) except OSError as e: if e.errno == errno.ESRCH: raise ProcessExitedAlready() else: raise
Example #3
Source File: procmon.py From python-for-android with Apache License 2.0 | 6 votes |
def stopProcess(self, name): """ @param name: The name of the process to be stopped """ if name not in self.processes: raise KeyError('Unrecognized process name: %s' % (name,)) proto = self.protocols.get(name, None) if proto is not None: proc = proto.transport try: proc.signalProcess('TERM') except error.ProcessExitedAlready: pass else: self.murder[name] = self._reactor.callLater( self.killTime, self._forceStopProcess, proc)
Example #4
Source File: test_process.py From python-for-android with Apache License 2.0 | 6 votes |
def testOpeningTTY(self): exe = sys.executable scriptPath = util.sibpath(__file__, "process_tty.py") p = Accumulator() d = p.endedDeferred = defer.Deferred() reactor.spawnProcess(p, exe, [exe, "-u", scriptPath], env=None, path=None, usePTY=self.usePTY) p.transport.write("hello world!\n") def processEnded(ign): self.assertRaises( error.ProcessExitedAlready, p.transport.signalProcess, 'HUP') self.assertEquals( p.outF.getvalue(), "hello world!\r\nhello world!\r\n", "Error message from process_tty follows:\n\n%s\n\n" % p.outF.getvalue()) return d.addCallback(processEnded)
Example #5
Source File: test_process.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_openingTTY(self): scriptPath = b"twisted.test.process_tty" p = Accumulator() d = p.endedDeferred = defer.Deferred() reactor.spawnProcess(p, pyExe, [pyExe, b"-u", b"-m", scriptPath], env=properEnv, usePTY=self.usePTY) p.transport.write(b"hello world!\n") def processEnded(ign): self.assertRaises( error.ProcessExitedAlready, p.transport.signalProcess, 'HUP') self.assertEqual( p.outF.getvalue(), b"hello world!\r\nhello world!\r\n", ("Error message from process_tty " "follows:\n\n%s\n\n" % (p.outF.getvalue(),))) return d.addCallback(processEnded)
Example #6
Source File: process.py From learn_python3_spider with MIT License | 6 votes |
def signalProcess(self, signalID): """ Send the given signal C{signalID} to the process. It'll translate a few signals ('HUP', 'STOP', 'INT', 'KILL', 'TERM') from a string representation to its int value, otherwise it'll pass directly the value provided @type signalID: C{str} or C{int} """ if signalID in ('HUP', 'STOP', 'INT', 'KILL', 'TERM'): signalID = getattr(signal, 'SIG%s' % (signalID,)) if self.pid is None: raise ProcessExitedAlready() try: os.kill(self.pid, signalID) except OSError as e: if e.errno == errno.ESRCH: raise ProcessExitedAlready() else: raise
Example #7
Source File: test_recvline.py From python-for-android with Apache License 2.0 | 5 votes |
def tearDown(self): # Kill the child process. We're done with it. try: self.clientTransport.signalProcess("KILL") except (error.ProcessExitedAlready, OSError): pass def trap(failure): failure.trap(error.ProcessTerminated) self.assertEquals(failure.value.exitCode, None) self.assertEquals(failure.value.status, 9) return self.testTerminal.onDisconnection.addErrback(trap)
Example #8
Source File: utils.py From tensor with MIT License | 5 votes |
def connectionMade(self): @defer.inlineCallbacks def killIfAlive(): try: yield self.transport.signalProcess('KILL') log.msg('Killed source proccess: Timeout %s exceeded' % self.timeout) except error.ProcessExitedAlready: pass self.timer = reactor.callLater(self.timeout, killIfAlive)
Example #9
Source File: watchdog.py From landscape-client with GNU General Public License v2.0 | 5 votes |
def _terminate(self, warn=False): if self.transport is not None: if warn: warning("%s didn't exit. Sending SIGTERM" % (self.daemon.program,)) try: self.transport.signalProcess(signal.SIGTERM) except ProcessExitedAlready: pass else: # Give some time for the process, and then show who's the boss. delayed = reactor.callLater(SIGKILL_DELAY, self._really_kill) self._delayed_really_kill = delayed
Example #10
Source File: watchdog.py From landscape-client with GNU General Public License v2.0 | 5 votes |
def _really_kill(self): try: self.transport.signalProcess(signal.SIGKILL) except ProcessExitedAlready: pass else: warning("%s didn't die. Sending SIGKILL." % self.daemon.program) self._delayed_really_kill = None
Example #11
Source File: watchdog.py From landscape-client with GNU General Public License v2.0 | 5 votes |
def rotate_logs(self): if self.transport is not None: try: self.transport.signalProcess(signal.SIGUSR1) except ProcessExitedAlready: pass
Example #12
Source File: _dumbwin32proc.py From python-for-android with Apache License 2.0 | 5 votes |
def signalProcess(self, signalID): if self.pid is None: raise error.ProcessExitedAlready() if signalID in ("INT", "TERM", "KILL"): win32process.TerminateProcess(self.hProcess, 1)
Example #13
Source File: process.py From python-for-android with Apache License 2.0 | 5 votes |
def signalProcess(self, signalID): """ Send the given signal C{signalID} to the process. It'll translate a few signals ('HUP', 'STOP', 'INT', 'KILL', 'TERM') from a string representation to its int value, otherwise it'll pass directly the value provided @type signalID: C{str} or C{int} """ if signalID in ('HUP', 'STOP', 'INT', 'KILL', 'TERM'): signalID = getattr(signal, 'SIG%s' % (signalID,)) if self.pid is None: raise ProcessExitedAlready() os.kill(self.pid, signalID)
Example #14
Source File: unix.py From python-for-android with Apache License 2.0 | 5 votes |
def closed(self): if self.ptyTuple and os.path.exists(self.ptyTuple[2]): ttyGID = os.stat(self.ptyTuple[2])[5] os.chown(self.ptyTuple[2], 0, ttyGID) if self.pty: try: self.pty.signalProcess('HUP') except (OSError,ProcessExitedAlready): pass self.pty.loseConnection() self.addUTMPEntry(0) log.msg('shell closed')
Example #15
Source File: test_process.py From learn_python3_spider with MIT License | 5 votes |
def test_killExitedButNotDetected(self): """ L{process.Process.signalProcess} raises L{error.ProcessExitedAlready} if the process has exited but that twisted hasn't seen it (for example, if the process has been waited outside of twisted): C{os.kill} then raise C{OSError} with C{errno.ESRCH} as errno. """ self.mockos.child = False self.mockos.waitChild = (0, 0) cmd = b'/mock/ouch' p = TrivialProcessProtocol(None) proc = reactor.spawnProcess(p, cmd, [b'ouch'], env=None, usePTY=False) self.mockos.raiseKill = OSError(errno.ESRCH, "Not found") self.assertRaises(error.ProcessExitedAlready, proc.signalProcess, "KILL")
Example #16
Source File: test_conch.py From python-for-android with Apache License 2.0 | 5 votes |
def _reallyDie(self): try: self.transport.signalProcess('KILL') except ProcessExitedAlready: pass
Example #17
Source File: test_process.py From python-for-android with Apache License 2.0 | 5 votes |
def test_process(self): """ Test running a process: check its output, it exitCode, some property of signalProcess. """ exe = sys.executable scriptPath = util.sibpath(__file__, "process_tester.py") d = defer.Deferred() p = TestProcessProtocol() p.deferred = d reactor.spawnProcess(p, exe, [exe, "-u", scriptPath], env=None) def check(ignored): self.assertEquals(p.stages, [1, 2, 3, 4, 5]) f = p.reason f.trap(error.ProcessTerminated) self.assertEquals(f.value.exitCode, 23) # would .signal be available on non-posix? # self.assertEquals(f.value.signal, None) self.assertRaises( error.ProcessExitedAlready, p.transport.signalProcess, 'INT') try: import process_tester, glob for f in glob.glob(process_tester.test_file_match): os.remove(f) except: pass d.addCallback(check) return d
Example #18
Source File: procmon.py From python-for-android with Apache License 2.0 | 5 votes |
def _forceStopProcess(self, proc): """ @param proc: An L{IProcessTransport} provider """ try: proc.signalProcess('KILL') except error.ProcessExitedAlready: pass
Example #19
Source File: test_conch.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def reallyDie(self): try: self.proto.transport.signalProcess('KILL') except error.ProcessExitedAlready: pass
Example #20
Source File: test_cftp.py From BitTorrent with GNU General Public License v3.0 | 5 votes |
def _killProcess(self, ignored): try: self.processProtocol.transport.signalProcess('KILL') except error.ProcessExitedAlready: pass
Example #21
Source File: procmon.py From learn_python3_spider with MIT License | 5 votes |
def _forceStopProcess(self, proc): """ @param proc: An L{IProcessTransport} provider """ try: proc.signalProcess('KILL') except error.ProcessExitedAlready: pass
Example #22
Source File: process.py From bitmask-dev with GNU General Public License v3.0 | 5 votes |
def kill(self): try: self.transport.signalProcess('KILL') except internet_error.ProcessExitedAlready: self.log.debug('Process Exited Already')
Example #23
Source File: test_process.py From learn_python3_spider with MIT License | 5 votes |
def test_killExited(self): """ L{process.Process.signalProcess} raises L{error.ProcessExitedAlready} if the process has exited. """ self.mockos.child = False cmd = b'/mock/ouch' p = TrivialProcessProtocol(None) proc = reactor.spawnProcess(p, cmd, [b'ouch'], env=None, usePTY=False) # We didn't specify a waitpid value, so the waitpid call in # registerReapProcessHandler has already reaped the process self.assertRaises(error.ProcessExitedAlready, proc.signalProcess, "KILL")
Example #24
Source File: test_process.py From learn_python3_spider with MIT License | 5 votes |
def test_process(self): """ Test running a process: check its output, it exitCode, some property of signalProcess. """ scriptPath = b"twisted.test.process_tester" d = defer.Deferred() p = TestProcessProtocol() p.deferred = d reactor.spawnProcess(p, pyExe, [pyExe, b"-u", b"-m", scriptPath], env=properEnv) def check(ignored): self.assertEqual(p.stages, [1, 2, 3, 4, 5]) f = p.reason f.trap(error.ProcessTerminated) self.assertEqual(f.value.exitCode, 23) # would .signal be available on non-posix? # self.assertIsNone(f.value.signal) self.assertRaises( error.ProcessExitedAlready, p.transport.signalProcess, 'INT') try: import process_tester, glob for f in glob.glob(process_tester.test_file_match): os.remove(f) except: pass d.addCallback(check) return d
Example #25
Source File: test_conch.py From learn_python3_spider with MIT License | 5 votes |
def _reallyDie(self): try: self.transport.signalProcess('KILL') except ProcessExitedAlready: pass
Example #26
Source File: test_recvline.py From learn_python3_spider with MIT License | 5 votes |
def tearDown(self): # Kill the child process. We're done with it. try: self.clientTransport.signalProcess("KILL") except (error.ProcessExitedAlready, OSError): pass def trap(failure): failure.trap(error.ProcessTerminated) self.assertIsNone(failure.value.exitCode) self.assertEqual(failure.value.status, 9) return self.testTerminal.onDisconnection.addErrback(trap)
Example #27
Source File: unix.py From learn_python3_spider with MIT License | 5 votes |
def closed(self): if self.ptyTuple and os.path.exists(self.ptyTuple[2]): ttyGID = os.stat(self.ptyTuple[2])[5] os.chown(self.ptyTuple[2], 0, ttyGID) if self.pty: try: self.pty.signalProcess('HUP') except (OSError, ProcessExitedAlready): pass self.pty.loseConnection() self.addUTMPEntry(0) log.msg('shell closed')
Example #28
Source File: _dumbwin32proc.py From learn_python3_spider with MIT License | 5 votes |
def signalProcess(self, signalID): if self.pid is None: raise error.ProcessExitedAlready() if signalID in ("INT", "TERM", "KILL"): win32process.TerminateProcess(self.hProcess, 1)
Example #29
Source File: procmon.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def _forceStopProcess(self, proc): """ @param proc: An L{IProcessTransport} provider """ try: proc.signalProcess('KILL') except error.ProcessExitedAlready: pass
Example #30
Source File: test_process.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def test_killExitedButNotDetected(self): """ L{process.Process.signalProcess} raises L{error.ProcessExitedAlready} if the process has exited but that twisted hasn't seen it (for example, if the process has been waited outside of twisted): C{os.kill} then raise C{OSError} with C{errno.ESRCH} as errno. """ self.mockos.child = False self.mockos.waitChild = (0, 0) cmd = b'/mock/ouch' p = TrivialProcessProtocol(None) proc = reactor.spawnProcess(p, cmd, [b'ouch'], env=None, usePTY=False) self.mockos.raiseKill = OSError(errno.ESRCH, "Not found") self.assertRaises(error.ProcessExitedAlready, proc.signalProcess, "KILL")