我有一个带有 gunicorn 的 systemd 服务。我在一个函数中有一个打印语句。问题是,当我调用该函数时,journalctl 不会显示打印输出,但它会在刷新 systemd 服务单元后显示输出。它应该表现得像这样吗?这个问题的解决方案是什么?
答案1
这是因为 Python 默认缓冲 stdin、stdout 和 stderr。对于 systemd 文件,请在与 相同的块中包含以下行ExecStart=/path/to/gunicorn
。
Environment=PYTHONUNBUFFERED=1
參閱https://stackoverflow.com/questions/107705/disable-output-buffering寻找其他禁用它的方法。