Go to the latest version of this document.

# ``twisted`.`internet`.`interfaces`.`IProcessTransport``

interface documentation

`class IProcessTransport(ITransport): (source)`

Known subclasses: `twisted.internet.endpoints._IProcessTransportWithConsumerAndProducer`

Known implementations: `twisted.internet._dumbwin32proc.Process`, `twisted.internet.process.Process`, `twisted.internet.process.PTYProcess`

View In Hierarchy

A process transport.

Method | `closeChildFD` | Close a file descriptor which is connected to the child process, identified by its FD in the child process.
Method | `closeStderr` | Close stderr.
Method | `closeStdin` | Close stdin after all data has been written out.
Method | `closeStdout` | Close stdout.
Method | `loseConnection` | Close stdin, stderr and stdout.
Method | `signalProcess` | Send a signal to the process.
Method | `writeToChild` | Similar to `ITransport.write` but also allows the file descriptor in the child process which will receive the bytes to be specified.
Attribute | `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.

Inherited from `ITransport`:

Method | `getHost` | Similar to getPeer, but returns an address describing this side of the connection.
Method | `getPeer` | Get the remote address of this connection.
Method | `write` | Write some data to the physical connection, in sequence, in a non-blocking fashion.
Method | `writeSequence` | Write an iterable of byte strings to the physical connection.

def closeChildFD(descriptor: `int`): (source)

Close a file descriptor which is connected to the child process, identified by its FD in the child process.

def closeStderr(): (source)

Close stderr.

def closeStdin(): (source)

Close stdin after all data has been written out.

def closeStdout(): (source)

Close stdout.

def loseConnection(): (source)
overrides `twisted.internet.interfaces.ITransport.loseConnection`

Close stdin, stderr and stdout.

def signalProcess(signalID: `str | int`): (source)

Send a signal to the process.

Parameters

signalID:`str | int`

can be

- one of `"KILL"`, `"TERM"`, or `"INT"`. These will be implemented in a cross-platform manner, and so should be used if possible.
- an integer, where it represents a POSIX signal ID.

Raises
`twisted.internet.error.ProcessExitedAlready` | If the process has already exited.
`OSError` | If the `os.kill` call fails with an errno different from `ESRCH`.

def writeToChild(childFD: `int`, data: `bytes`): (source)

Similar to `ITransport.write` but also allows the file descriptor in the child process which will receive the bytes to be specified.

Parameters
childFD:`int` | The file descriptor to which to write.
data:`bytes` | 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.

pid = (source)

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.