You have the following line in runner self.daemon_context.stderr = open(app.stderr_path, 'w+t', buffering=0) Which violates open call requirements
self.daemon_context.stderr = open(app.stderr_path, 'w+t', buffering=0)
buffering is an optional integer used to set the buffering policy. Pass 0 to switch buffering off (only allowed in binary mode), 1 to select line buffering (only usable in text mode)
From https://docs.python.org/3/library/functions.html#open
This causes the crash
Traceback (most recent call last): File "main.py", line 18, in <module> bot = DaemonRunner(steve_miner_bot()) File "/usr/local/lib/python3.7/site-packages/daemon/runner.py", line 114, in __init__ self._open_streams_from_app_stream_paths(app) File "/usr/local/lib/python3.7/site-packages/daemon/runner.py", line 135, in _open_streams_from_app_stream_paths app.stderr_path, 'w+t', buffering=0) ValueError: can't have unbuffered text I/O
You have the following line in runner
Thank you for the report.
The runner example module is looking for a separate maintainer, and is not a formal part of the daemon library. I'll close this bug report, but if anyone wants to maintain runner separately they're welcome to.
runner
daemon
Metadata Update from @bignose: - Issue close_status updated to: Invalid - Issue status updated to: Closed (was: Open)