class PTYProcess(abstract.FileDescriptor, _BaseProcess): (source)
Constructor: PTYProcess(reactor, executable, args, environment, ...)
Implements interfaces: twisted.internet.interfaces.IProcessTransport
An operating-system Process that uses PTY support.
Method | __init__ |
Spawn an operating-system process. |
Method | close |
Close a file descriptor which is connected to the child process, identified by its FD in the child process. |
Method | close |
Close stderr. |
Method | close |
Close stdin after all data has been written out. |
Method | close |
Close stdout. |
Method | connection |
I call this to clean up when one or all of my connections has died. |
Method | do |
Called when my standard output stream is ready for reading. |
Method | fileno |
This returns the file number of standard output on this process. |
Method | maybe |
Call processEnded on protocol after final cleanup. |
Method | write |
Write some data to the open process. |
Method | write |
Similar to ITransport.write but also allows the file descriptor in the child process which will receive the bytes to be specified. |
Instance Variable | connected |
Undocumented |
Instance Variable | fd |
Undocumented |
Instance Variable | pid |
From before IProcessProtocol.makeConnection is called to before IProcessProtocol.processEnded is called, pid is an int giving the platform process ID of this process. pid is None at all other times. |
Instance Variable | status |
Undocumented |
Method | _setup |
Set up child process after fork() but before exec(). |
Inherited from FileDescriptor
:
Method | do |
Called when data can be written. |
Method | get |
Similar to getPeer, but returns an address describing this side of the connection. |
Method | get |
Get the remote address of this connection. |
Method | lose |
Close the connection at the next available opportunity. |
Method | lose |
Undocumented |
Method | pause |
Pause producing data. |
Method | read |
Indicates read connection was lost. |
Method | resume |
Resume producing data. |
Method | start |
Start waiting for read availability. |
Method | start |
Start waiting for write availability. |
Method | stop |
Stop consuming data. |
Method | stop |
Stop producing data. |
Method | stop |
Stop waiting for read availability. |
Method | stop |
Stop waiting for write availability. |
Method | write |
Reliably write some data. |
Method | write |
Indicates write connection was lost. |
Method | write |
Reliably write a sequence of data. |
Constant | SEND |
Undocumented |
Class Variable | buffer |
Undocumented |
Class Variable | disconnecting |
Undocumented |
Instance Variable | data |
Undocumented |
Instance Variable | disconnected |
Undocumented |
Instance Variable | offset |
Undocumented |
Instance Variable | producer |
Undocumented |
Instance Variable | producer |
Undocumented |
Instance Variable | reactor |
Undocumented |
Method | _close |
Undocumented |
Method | _is |
Determine whether the user-space send buffer for this transport is full or not. |
Method | _maybe |
Possibly pause a producer, if there is one and the send buffer is full. |
Method | _post |
Called after a loseConnection(), when all data has been written. |
Class Variable | _write |
Undocumented |
Instance Variable | _temp |
Undocumented |
Instance Variable | _temp |
Undocumented |
Instance Variable | _write |
Undocumented |
Inherited from _ConsumerMixin
(via FileDescriptor
):
Method | register |
Register to receive data from a producer. |
Method | unregister |
Stop consuming data from a producer, without disconnecting. |
Instance Variable | streaming |
bool or int |
Inherited from _LogOwner
(via FileDescriptor
, _ConsumerMixin
):
Method | log |
Override this method to insert custom logging behavior. Its return value will be inserted in front of every line. It may be called more times than the number of output lines. |
Method | _get |
Determine the log prefix to use for messages related to applicationObject, which may or may not be an interfaces.ILoggingContext provider. |
Inherited from _BaseProcess
(via FileDescriptor
, _ConsumerMixin
, _LogOwner
):
Method | __repr__ |
String representation of a process. |
Method | reap |
Try to reap a process (without blocking) via waitpid. |
Method | signal |
Send the given signal 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... |
Method | _exec |
The exec() which is done in the forked child. |
Method | _fork |
Fork and then exec sub-process. |
Method | _get |
Undocumented |
Method | _reset |
Undocumented |
Method | _try |
Try to use posix_spawnp() instead of fork(), if possible. |
Inherited from BaseProcess
(via FileDescriptor
, _ConsumerMixin
, _LogOwner
, _BaseProcess
):
Method | process |
This is called when the child terminates. |
Class Variable | lost |
Undocumented |
Instance Variable | proto |
Undocumented |
Method | _call |
Undocumented |
Spawn an operating-system process.
This is where the hard work of disconnecting all currently open files / forking / executing the new process happens. (This is executed automatically when a Process is instantiated.)
This will also run the subprocess as a given user ID and group ID, if specified. (Implementation Note: this doesn't support all the arcane nuances of setXXuid on UNIX: it will assume that either your effective or real UID is 0.)
Close a file descriptor which is connected to the child process, identified by its FD in the child process.
Similar to ITransport.write
but also allows the file descriptor in the child process which will receive the bytes to be specified.
Parameters | |
child | The file descriptor to which to write. |
data | The bytes to write. |
Raises | |
KeyError | If childFD is not a file descriptor that was mapped in the child when IReactorProcess.spawnProcess was used to create it. |
From before IProcessProtocol.makeConnection
is called to before IProcessProtocol.processEnded
is called, pid is an int
giving the platform process ID of this process. pid is None
at all other times.
Set up child process after fork() but before exec().
This involves:
- closing masterfd, since it is not used in the subprocess
- creating a new session with os.setsid
- changing the controlling terminal of the process (and the new session) to point at slavefd
- duplicating slavefd to standard input, output, and error
- closing all other open file descriptors (according to
_listOpenFDs
) - re-setting all signal handlers to SIG_DFL
Parameters | |
masterfd:int | The master end of a PTY file descriptors opened with openpty. |
slavefd:int | The slave end of a PTY opened with openpty. |