Search code examples
pythonmultithreadingmoduledaemon

Python module threading as daemon with logging


I am trying to create a module init and a module mydaemon in Python 2.7 under Debian 7.

The module init checks the requirements such as db connections etc. Then, mydaemon runs in a thread and uses the database to do things and write a logfile.

The problem when setting up the thread daemon is that the logging and function call fails. But if the thread not daemon working fine...

Where am I wrong or what will be a better approach?

init.py

import mydaemon, threading

print 'start'
t = threading.Thread( target = mydaemon.start, args = () )
t.daemon = True # error here
t.start()

mydaemon.py

import logging

def start():
   work()
   return

def work():
   logging.basicConfig( filename = 'mylog.log', level = logging.DEBUG )
   logging.info('foo log')
   print 'foo console' 
   return

Solution

  • My colleague found another method with external Daemon module (python-daemon)

    http://www.gavinj.net/2012/06/building-python-daemon-process.html

    In the tutorial have some errors, so read the comments ;-)