Package twisted :: Package internet :: Module process :: Class PTYProcess
[frames | no frames]

Class PTYProcess

     Ephemeral --+
                 |
 Ephemeral --+   |
             |   |
    Logger --+   |
             |   |
FileDescriptor --+
                 |
                PTYProcess


An operating-system Process that uses PTY support.
Method Summary
  __init__(self, reactor, command, args, environment, path, proto, uid, gid, usePTY)
Spawn an operating-system process.
  closeStderr(self)
  closeStdin(self)
  closeStdout(self)
  connectionLost(self, reason)
I call this to clean up when one or all of my connections has died.
  doRead(self)
Called when my standard output stream is ready for reading.
  fileno(self)
This returns the file number of standard output on this process.
  maybeCallProcessEnded(self)
  processEnded(self, status)
  reapProcess(self)
Try to reap a process (without blocking) via waitpid.
  signalProcess(self, signalID)
  writeSomeData(self, data)
Write some data to the open process.
    Inherited from FileDescriptor
  _postLoseConnection(self)
Called after a loseConnection(), when all data has been written.
  doWrite(self)
Called when data is available for writing.
  loseConnection(self)
Close the connection at the next available opportunity.
  pauseProducing(self)
  registerProducer(self, producer, streaming)
Register to receive data from a producer.
  resumeProducing(self)
  startReading(self)
Start waiting for read availability.
  startWriting(self)
Start waiting for write availability.
  stopConsuming(self)
Stop consuming data.
  stopProducing(self)
  stopReading(self)
Stop waiting for read availability.
  stopWriting(self)
Stop waiting for write availability.
  unregisterProducer(self)
Stop consuming data from a producer, without disconnecting.
  write(self, data)
Reliably write some data.
  writeSequence(self, iovec)
    Inherited from Logger
  logPrefix(self)
Override this method to insert custom logging behavior.
    Inherited from Ephemeral
  __getstate__(self)
  __setstate__(self, state)

Class Variable Summary
    Inherited from FileDescriptor
tuple __implements__ = (<class twisted.internet.interfaces.IPr...
int bufferSize = 65536                                                                 
int connected = 0                                                                     
str dataBuffer = ''
int disconnected = 0                                                                     
int disconnecting = 0                                                                     
int offset = 0                                                                     
NoneType producer = None                                                                  
int producerPaused = 0                                                                     
int streamingProducer = 0                                                                     

Method Details

__init__(self, reactor, command, args, environment, path, proto, uid=None, gid=None, usePTY=None)
(Constructor)

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.)
Overrides:
twisted.internet.abstract.FileDescriptor.__init__

connectionLost(self, reason)

I call this to clean up when one or all of my connections has died.
Overrides:
twisted.internet.abstract.FileDescriptor.connectionLost

doRead(self)

Called when my standard output stream is ready for reading.

fileno(self)

This returns the file number of standard output on this process.
Overrides:
twisted.internet.abstract.FileDescriptor.fileno

reapProcess(self)

Try to reap a process (without blocking) via waitpid.

This is called when sigchild is caught or a Process object loses its "connection" (stdout is closed) This ought to result in reaping all zombie processes, since it will be called twice as often as it needs to be.

(Unfortunately, this is a slightly experimental approach, since UNIX has no way to be really sure that your process is going to go away w/o blocking. I don't want to block.)

writeSomeData(self, data)

Write some data to the open process.
Overrides:
twisted.internet.abstract.FileDescriptor.writeSomeData

Generated by Epydoc 2.0 on Sat May 15 20:07:58 2004 http://epydoc.sf.net