Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Python daemonizer for Unix, Linux and OS X
Branch: master
Pull request Compare This branch is 21 commits behind serverdensity:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
README.markdown
daemon.py

README.markdown

Python daemonizer class

This is a Python class that will daemonize your Python script so it can continue running in the background. It works on Unix, Linux and OS X, creates a PID file and has standard commands (start, stop, restart) + a foreground mode.

Based on this original version from jejik.com.

Usage

Define a class which inherits from Daemon and has a run() method (which is what will be called once the daemonization is completed.

from daemon import Daemon

class pantalaimon(Daemon):
    def run(self):
        # Do stuff

Create a new object of your class, specifying where you want your PID file to exist:

pineMarten = pantalaimon('/path/to/pid.pid')
pineMarten.start()

Actions

  • start() - starts the daemon (creates PID and daemonizes).
  • stop() - stops the daemon (stops the child process and removes the PID).
  • restart() - does stop() then start().

Foreground

This is useful for debugging because you can start the code without making it a daemon. The running script then depends on the open shell like any normal Python script.

To do this, just call the run() method directly.

pineMarten.run()

Continuous execution

The run() method will be executed just once so if you want the daemon to be doing stuff continuously you may wish to use the sched module to execute code repeatedly (example).

Something went wrong with that request. Please try again.