dae

daemonize

daemonize is a library for writing system daemons in Python.

Showing:

Popularity

Downloads/wk

0

GitHub Stars

403

Maintenance

Last Commit

3yrs ago

Contributors

12

Package

Dependencies

0

License

MIT

Categories

Readme

daemonize

.. image:: https://readthedocs.org/projects/daemonize/badge/?version=latest :target: http://daemonize.readthedocs.org/en/latest/?badge=latest :alt: Latest version

.. image:: https://img.shields.io/travis/thesharp/daemonize.svg :target: http://travis-ci.org/thesharp/daemonize :alt: Travis CI

.. image:: https://img.shields.io/pypi/dm/daemonize.svg :target: https://pypi.python.org/pypi/daemonize :alt: PyPI montly downloads

.. image:: https://img.shields.io/pypi/v/daemonize.svg :target: https://pypi.python.org/pypi/daemonize :alt: PyPI last version available

.. image:: https://img.shields.io/pypi/l/daemonize.svg :target: https://pypi.python.org/pypi/daemonize :alt: PyPI license

daemonize is a library for writing system daemons in Python. It is distributed under MIT license. Latest version can be downloaded from PyPI <https://pypi.python.org/pypi/daemonize>. Full documentation can be found at ReadTheDocs <http://daemonize.readthedocs.org/en/latest/?badge=latest>.

Dependencies

It is tested under following Python versions:

  • 2.6
  • 2.7
  • 3.3
  • 3.4
  • 3.5

Installation

You can install it from Python Package Index (PyPI):

::

$ pip install daemonize

Usage

.. code-block:: python

from time import sleep
from daemonize import Daemonize

pid = "/tmp/test.pid"


def main():
    while True:
        sleep(5)

daemon = Daemonize(app="test_app", pid=pid, action=main)
daemon.start()

File descriptors

Daemonize object's constructor understands the optional argument keep_fds which contains a list of FDs which should not be closed. For example:

.. code-block:: python

import logging
from daemonize import Daemonize

pid = "/tmp/test.pid"
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.propagate = False
fh = logging.FileHandler("/tmp/test.log", "w")
fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
keep_fds = [fh.stream.fileno()]


def main():
    logger.debug("Test")

daemon = Daemonize(app="test_app", pid=pid, action=main, keep_fds=keep_fds)
daemon.start()

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100