{"id":23489,"library":"daemoniker","title":"daemoniker","description":"Cross-platform daemonization tools for Python, supporting Windows via win32service and Unix via traditional forking. Current version 0.2.3, last released in 2018. Low release cadence, effectively in maintenance mode.","status":"maintenance","version":"0.2.3","language":"python","source_language":"en","source_url":"https://github.com/Muterra/py_daemoniker","tags":["daemon","background","service","cross-platform","windows"],"install":[{"cmd":"pip install daemoniker","lang":"bash","label":"Latest stable"}],"dependencies":[{"reason":"Required on Windows for service management (win32serviceutil, win32service, win32event, servicemanager)","package":"pywin32","optional":true}],"imports":[{"note":"","wrong":"","symbol":"Daemonizer","correct":"from daemoniker import Daemonizer"},{"note":"","wrong":"","symbol":"SIGBREAK","correct":"from daemoniker import SIGBREAK"}],"quickstart":{"code":"from daemoniker import Daemonizer\nimport time\n\nwith Daemonizer():\n    while True:\n        with open('/tmp/daemoniker.log', 'a') as f:\n            f.write('Daemon running\\n')\n        time.sleep(5)","lang":"python","description":"Basic daemonizing a background loop. On Unix, fork and detach; on Windows, runs as a service."},"warnings":[{"fix":"Install pywin32: pip install pywin32","message":"On Windows, the daemoniker requires pywin32. Install with 'pip install pywin32' and ensure it's importable. The service will fail silently if missing.","severity":"gotcha","affected_versions":"0.2.0+"},{"fix":"Use 'with Daemonizer():'","message":"Daemonizer must be used as a context manager (with statement). Calling __init__ without the context manager will not daemonize the process.","severity":"gotcha","affected_versions":"all"},{"fix":"Use signal.SIGTERM instead if you need custom shutdown.","message":"On Unix, SIGBREAK is defined but not a standard signal. Using it may cause unexpected behavior. Prefer SIGTERM or SIGINT.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"pip install pywin32","cause":"pywin32 not installed on Windows.","error":"ModuleNotFoundError: No module named 'win32serviceutil'"},{"fix":"Upgrade daemoniker: pip install --upgrade daemoniker","cause":"Older version (<0.2) may not have SIGBREAK, or signal constants are not exported.","error":"ImportError: cannot import name 'SIGBREAK' from 'daemoniker'"},{"fix":"Use: from daemoniker import Daemonizer","cause":"Due to a packaging bug, importing daemoniker directly may not expose all names. Use correct import path.","error":"AttributeError: module 'daemoniker' has no attribute 'Daemonizer'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}