ffstatus-daemon.py 808 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/python
  2. from __future__ import print_function
  3. import daemon
  4. import lockfile
  5. import logging
  6. import sys
  7. import time
  8. import ffstatus
  9. LOGFILE = '/var/log/ffstatus.log'
  10. PIDFILE = '/run/ffstatus.pid'
  11. logging.basicConfig(
  12. filename=LOGFILE,
  13. format='%(asctime)s [%(levelname)s] %(message)s',
  14. datefmt='%Y-%m-%d %H:%M:%S',
  15. level=logging.INFO,
  16. )
  17. a = ffstatus.AlfredParser()
  18. try:
  19. a.sanitycheck()
  20. except Exception as err:
  21. logging.critical("Failed sanity-check: " + str(err))
  22. print('FAILED SANITY CHECK: ' + str(err))
  23. sys.exit(1)
  24. daemon_context = daemon.DaemonContext(
  25. pidfile=lockfile.FileLock(PIDFILE),
  26. files_preserve=[handler.stream]
  27. )
  28. with daemon_context:
  29. while True:
  30. try:
  31. logging.debug('Execute')
  32. a.execute()
  33. time.sleep(15)
  34. except Exception as err:
  35. logging.error(str(err))