python - nohup 和 python 没有错误消息?

标签 python debugging exception stderr nohup

我在 linux 服务器上用 nohup 运行一个 python 脚本:

nohup python3 ./myscript.py > ./mylog.log &

它有效并且脚本写入日志文件,但问题是 python 错误消息/抛出的异常似乎没有写入日志文件。我怎样才能做到这一点?

这与标准错误有关吗? (但是当我启动脚本时它说:“nohup:将 stderr 重定向到 stdout”。)

这是一个长时间运行的脚本,一段时间后脚本有时会因为某些问题而停止工作,并且缺少错误消息我不知道为什么。问题总是在几天后发生,所以调试起来真的很痛苦。

编辑: 它可能与冲洗有关吗?由于我自己的打印使用 flush 但也许 python 错误没有,所以一旦脚本中止它们就不会出现在文件中?

最佳答案

我找到原因了。这真的是缓冲问题(见我上面的编辑)。 :)

nohup python3 -u ./myscript.py > ./mylog.log &

使用 python -u 参数就可以了。它禁用缓冲。

现在我可以去寻找漏洞了...

关于python - nohup 和 python 没有错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17163413/

相关文章:

node.js - 为什么 Nodejs 调试器在 npm 配置中运行时会忽略断点?

java - 如何更改Exception.getMessage()的返回消息?

java - 是否有一个标准的 java 异常类表示 "The object was not found"?

python - 其余的 ironpython 异常在哪里?

python - 如何将这种形式的字典更改为 pandas 数据框?

python - 编写一个自定义 Django BaseCommand 类来记录命令详细信息

python - 'easy_install' 不是内部或外部命令、可运行程序或批处理文件

python - 如何从动态导入的类中调用方法

PHP Xdebug 调试在第一个断点停止在 VSCode 中工作

javascript - 禁用站点上的所有 AJAX/Websocket 数据请求?