RETIRED, further work has moved to Debian project infrastructure
Go to file
Fedor Gogolev 3ceb03a44e Remove api docs from readme 2015-11-02 18:16:26 +03:00
docs Remove api docs from readme 2015-11-02 18:16:26 +03:00
tests Add a test case for #22. 2014-05-28 21:51:57 +04:00
.gitignore Add sphinx-doc, migrate to rst in readme 2015-11-02 18:03:12 +03:00
.travis.yml Test documentation in travis 2015-11-02 18:10:26 +03:00
LICENSE Document verbose parameter, update LICENSE. 2014-03-15 01:34:58 +04:00
MANIFEST.in Add sphinx-doc, migrate to rst in readme 2015-11-02 18:03:12 +03:00
README.rst Remove api docs from readme 2015-11-02 18:16:26 +03:00
daemonize.py Add sphinx-doc, migrate to rst in readme 2015-11-02 18:03:12 +03:00
setup.py Add sphinx-doc, migrate to rst in readme 2015-11-02 18:03:12 +03:00

README.rst

daemonize Build Status

daemonize is a library for writing system daemons in Python. It has some bits from daemonize.sourceforge.net. It is distributed under MIT license.

Dependencies

It is tested under following Python versions:

  • 2.6
  • 2.7
  • 3.3

Installation

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

$ pip install daemonize

Usage

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:

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()