I am attempting to use the python-daemon library which seemed to me to be the safest way to create a Daemon without forgetting anything. The documentation is quite poor, being j
For making a daemon program that will work correctly with the various runners in operating systems (e.g. init
, systemd
, launchd
), the python-daemon library is the de facto way to write just the daemon part and let the operating system do the rest of the job correctly.
I went with Sander Marechal's A simple unix/linux daemon in Python, it is simple, and you work with it by creating a subclass and overriding the run()
method, which feels a very natural way to do things (rather than the with context:
approach of the python-daemon module.
Twisted comes with twistd.
http://twistedmatrix.com/documents/current/core/howto/basics.html
You can wrap your application as a plugin for twistd.