Skip to main content

Jettison functions with jetsam!

Project description

Jetsam

  • True daemonizer using native C calls
  • Currently only compatible with *nix file systems
  • Extra Paranoid Edition uses that double fork magic!

jetsam definition: floating debris ejected from a ship

C Extension

To showcase a C library being used as a native python module

Example

import time
import logging
import jetsam
from jetsam import daemon

# jetsam will log pids and errors from daemons 
# to a single log file. It will also update the file
# with the current status of the daemon  
#  
#   function_name:pid:status
#
jetsam.set_logfile("user_daemon.log")  # defaults to /tmp/jetsam.log

@daemon
def func1():
    logging.basicConfig(
        filename="func1.log", 
        level=logging.DEBUG, 
        filemode="w"
    )
    while True:
        time.sleep(1)
        logging.debug("Truly daemonized!")

def func2():
    logging.basicConfig(
        filename="func2.log", 
        level=logging.DEBUG, 
        filemode="w"
    )
    while True:
        time.sleep(1)
        logging.debug("I can do this all day...")


func1()  # detachs from current interpreter
daemon(func2)  # each function immediately returns 

time.sleep(3)  # a long running process...

jetsam.end_daemon(func1)
jetsam.end_daemon(func2)

print("Jettison functions with jetsam!")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jetsam-0.2.0.tar.gz (7.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page