SimpleDaemon /

Filename Size Date modified Message
880 B
1.0 KB
88 B
1.5 KB
1.3 KB


A fork of Shane Hathaway's script.


  • reads the command line
  • reads a configuration file
  • configures logging
  • calls root-level setup code
  • drops privileges
  • calls user-level setup code
  • detaches from the controlling terminal
  • checks and writes a pidfile


pip install simpledaemon


Writing a daemon requires creating two files, a daemon file which simply enters an infinite loop and does whatever you want it to do, and a configuration file with the same name which tells simpledaemon how to setup your daemon.

import simpledaemon
import logging
import time

class HelloDaemon(simpledaemon.Daemon):
    default_conf = '/etc/hellodaemon.conf'
    section = 'hello'

    def run(self):
        while True:
  'The daemon says hello')

if __name__ == '__main__':


pidfile = ./
logfile = ./hellodaemon.log
loglevel = info


To use your new daemon, execute your script like so:

./ --start

Stopping is similar:

./ --stop

For a full list of options, see the help:

./ --help


If you come across any bugs in simpledaemon. Kindly file an issue at:

Pull requests are also welcome.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.