Blob Blame History Raw
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