File: README.rst

package info (click to toggle)
python-daemonize 2.5.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 200 kB
  • sloc: python: 416; makefile: 32
file content (96 lines) | stat: -rw-r--r-- 2,248 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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()