Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

geventdaemon

Introduction

geventdaemon is a wrapper around python-daemon to help daemonizing gevent based processes.

It delegates the signal handling to gevent instead of using python's and reinit the event loop after forks.

Specific options

monkey, None by default, it can be a dict or something that evaluate to True. If it is True, it patches all. (see gevent.monkey.patch_all()). If it is a dict, it pass the dict as keywords arguments to patch_all().

monkey_greenlet_report, False by default. It patches the gevent.Greenlet._report_error method to log the error using the root logger of python logging.

signal_map receives a dict of signals, but handler is either a callable, a list of arguments [callable, arg1, arg2] or a string. callable without arguments will receive (signal, None) as arguments, meaning the frame parameter is always None.

from geventdaemon import GeventDaemonContext
def work()
    gevent.sleep(500)

def stop(signal, frame):
    # frame is always None, it is there for compatibility with python-daemon
    raise SystemExit('terminated by signal %d' % int(signal))

context = GeventDaemonContext(monkey={'httplib': True},
    signal_map={signal.SIGTERM: stop,
                signal.SIGINT: stop})

with context:
    # do some gevent work after fork.
    work()

About

python-daemon wrapper to daemonize gevent based processes

Resources

Stars

25 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages