TODO for ‘python-daemon’ library
################################

:Updated: 2015-01-10

=======
PENDING
=======

Tests
=====

Libraries
=========

* Evaluate switching to ‘flufl.lock’ library for PID lockfile behaviour
  <http://pypi.python.org/pypi/flufl.lock>_.

Features
========

Important
---------

Wishlist
--------

* Allow specification of a syslog service name to log as (default:
  output to stdout and stderr, not syslog).

Documentation
=============

Standard library inclusion
==========================


====
DONE
====

* Convert to Python 2 and Python 3 compatible code base.

* Work correctly with current ‘lockfile’ library (0.10 or later).

* Write full unit tests for every new or changed behaviour at time of
  commit.

* Detect whether started by another process that handles
  daemonisation, such as ‘inetd’, and behave appropriately.

* Detach to new process and session group.

* Allow specification of working directory (default: '/').

* Allow specification of umask (default: 0o000).

* Drop ‘suid’ and ‘sgid’ privileges if set.

* Close all open file handles.

* Re-open stdin, stdout, stderr to user-specified files.

* Default re-open stdin, stdout, stderr to ‘/dev/null’.

* Allow specification of a non-root user and group to drop to, if
  started as ‘root’ (default: no change of user or group).

* Implement context manager protocol for daemon context.

* Allow specification of PID file with its own context manager
  (default: no PID file).

* Full docstrings for functions, classes, and modules.

* PEP 3143 for adding this library to the Python standard library.


..
    This is free software: you may copy, modify, and/or distribute this work
    under the terms of the Apache License version 2.0 as published by the
    Apache Software Foundation.
    No warranty expressed or implied. See the file ‘LICENSE.ASF-2’ for details.

..
    Local variables:
    coding: utf-8
    mode: text
    mode: rst
    time-stamp-format: "%:y-%02m-%02d"
    time-stamp-start: "^:Updated:[         ]+"
    time-stamp-end: "$"
    time-stamp-line-limit: 20
    End:
    vim: fileencoding=utf-8 filetype=rst :
