Metadata-Version: 1.1
Name: pid
Version: 2.1.1
Summary: Pidfile featuring stale detection and file-locking, can also be used as context-manager or decorator
Home-page: https://github.com/trbs/pid/
Author: Trbs
Author-email: trbs@trbs.net
License: ASL
Description: pid
===
.. image:: https://travis-ci.org/trbs/pid.svg?branch=master
:target: https://travis-ci.org/trbs/pid
.. image:: https://coveralls.io/repos/trbs/pid/badge.png
:target: https://coveralls.io/r/trbs/pid
.. image:: https://pypip.in/v/pid/badge.png
:target: https://pypi.python.org/pypi/pid/
:alt: Latest PyPI version
.. image:: https://pypip.in/d/pid/badge.png
:target: https://pypi.python.org/pypi/pid/
:alt: Number of PyPI downloads
PidFile class featuring:
- stale detection
- pidfile locking (fcntl)
- chmod (default is 0o644)
- chown
- custom exceptions
Context Manager
---------------
PidFile can be used as a context manager::
from pid import PidFile
with PidFile():
do_something()
Decorator
---------
PidFile can also be used a a decorator::
from pid.decorator import pidfile
@pidfile()
def main():
pass
if __name__ == "__main__":
main()
Exception Order
---------------
In default mode PidFile will try to acquire a file lock before anything else.
This means that normally you get a PidFileAlreadyLockedError instead of the
PidFileAlreadyRunningError when running a program twice.
If you just want to know if a program is already running its easiest to catch
just PidFileError since it will capture all possible PidFile exceptions.
Behaviour
---------
Changes in version 2.0.0 and going forward:
* pid is now friendly with daemon context managers such as
`python-daemon <https://pypi.python.org/pypi/python-daemon/>`_ where
the PidFile context manager is passed as a parameter. The
new corrected behaviour will ensure the process environment is
determinde at the time of acquiring/checking the lock. Prior
behaviour would determine the process environment when
instancing the class which may result in incorrect determination
of the PID in the case of a process forking after instancing
PidFile.
\
* Cleanup of pidfile on termination is done using `atexit` module.
The default SIGTERM handler doesn't cleanly exit and therefore
the atexit registered functions will not execute. A custom
handler which triggers the atexit registered functions for cleanup
will override the default SIGTERM handler. If a prior signal handler
has been configured, then it will not be overridden.
Keywords: pid pidfile context manager decorator
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: PyPy