class UnixApplicationRunner(app.ApplicationRunner): (source)
Constructor: UnixApplicationRunner(config)
An ApplicationRunner which does Unix-specific things, like fork, shed privileges, and maintain a PID file.
Method | daemonize |
Daemonizes the application on Unix. This is done by the usual double forking approach. |
Method | post |
To be called after the application is created: start the application and run the reactor. After the reactor stops, clean up PID files and such. |
Method | pre |
Do pre-application-creation setup. |
Method | remove |
Remove the specified PID file, if possible. Errors are logged, not raised. |
Method | setup |
Set the filesystem root, the working directory, and daemonize. |
Method | shed |
Change the UID and GID or the EUID and EGID of this process. |
Method | start |
Configure global process state based on the given application and run the application. |
Instance Variable | oldstderr |
Undocumented |
Instance Variable | oldstdout |
Undocumented |
Method | _format |
Format the exception in preparation for writing to the status pipe. This does the right thing on Python 2 if the exception's message is Unicode, and in all cases limits the length of the message afte* encoding to 100 bytes. |
Method | _wait |
Wait for the daemonization success. |
Inherited from ApplicationRunner
:
Method | __init__ |
Undocumented |
Method | create |
Create or load an Application based on the parameters found in the given ServerOptions instance. |
Method | run |
Run the application. |
Method | start |
Run the reactor with the given configuration. Subclasses should probably call this from postApplication. |
Instance Variable | application |
Available in postApplication, but not preApplication. This is the application object. |
Instance Variable | config |
The config object, which provides a dict-like interface. |
Instance Variable | logger |
Instance provided by loggerFactory. |
Instance Variable | logger |
Factory for creating object responsible for logging. |
Instance Variable | profiler |
Instance provided by profilerFactory. |
Instance Variable | profiler |
Factory for creating a profiler object, able to profile the application if options are set accordingly. |
Instance Variable | _exit |
Undocumented |
Daemonizes the application on Unix. This is done by the usual double forking approach.
Parameters | |
reactor | The reactor in use. If it provides IReactorDaemonize , its daemonization-related callbacks will be invoked. |
Returns | |
int | A writable pipe to be used to report errors. |
See Also | |
http://code.activestate.com/recipes/278731/ | |
W. Richard Stevens, "Advanced Programming in the Unix Environment", 1992, Addison-Wesley, ISBN 0-201-56317-7 |
To be called after the application is created: start the application and run the reactor. After the reactor stops, clean up PID files and such.
Remove the specified PID file, if possible. Errors are logged, not raised.
Parameters | |
pidfile:str | The path to the PID tracking file. |
Set the filesystem root, the working directory, and daemonize.
Parameters | |
chroot:str or None | If not None, a path to use as the filesystem root (using os.chroot ). |
rundir:str | The path to set as the working directory. |
nodaemon:bool | A flag which, if set, indicates that daemonization should not be done. |
umask:int or None | The value to which to change the process umask. |
pidfile:str or None | If not None , the path to a file into which to put the PID of this process. |
Configure global process state based on the given application and run the application.
Parameters | |
application | An object which can be adapted to service.IProcess and service.IService . |
Format the exception in preparation for writing to the status pipe. This does the right thing on Python 2 if the exception's message is Unicode, and in all cases limits the length of the message afte* encoding to 100 bytes.
This means the returned message may be truncated in the middle of a unicode escape.
Parameters | |
exception:Exception | The exception to format. |
Returns | |
bytes | The formatted message, suitable for writing to the status pipe. |