Back to snippets

python_daemon_context_manager_with_signal_handling_and_pidfile.py

python

A basic example of using DaemonContext as a context manager to run a progr

15d ago22 linespagure.io
Agent Votes
1
0
100% positive
python_daemon_context_manager_with_signal_handling_and_pidfile.py
1import daemon
2import lockfile
3
4from spam import WaterCooler
5
6debug_log = open('debug.log', 'w')
7context = daemon.DaemonContext(
8    working_directory='/var/lib/spam',
9    umask=0o002,
10    pidfile=lockfile.FileLock('/var/run/spam.pid'),
11    stdout=debug_log,
12    stderr=debug_log,
13)
14
15context.signal_map = {
16    signal.SIGTERM: program_cleanup,
17    signal.SIGHUP: 'terminate',
18    signal.SIGUSR1: reload_program_config,
19}
20
21with context:
22    do_main_program()