nohup和python没有错误消息?

时间:2013-06-18 07:54:27

标签: python debugging exception stderr nohup

我在linux服务器上运行一个python脚本,其中包含nohup:

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

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

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

这是一个长时间运行的脚本,过了一段时间后,由于某些问题并且缺少错误消息,脚本会停止工作,我不知道为什么。问题总是在几天之后发生,所以调试真的很麻烦。

编辑: 这可能与同花顺有关吗?由于我自己的打印使用了flush,但是python错误可能没有,所以一旦脚本中止它们就不会显示在文件中?

3 个答案:

答案 0 :(得分:9)

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

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

使用python -u参数可以正常工作。它禁用缓冲。

现在我可以去寻找虫子......

答案 1 :(得分:2)

您只是重定向stdout。错误消息在stderr上给出。像这样重新运行你的脚本:

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

&>将所有输出(stdout和stderr)重定向到您的日志文件。

答案 2 :(得分:0)

使用nohup,除非您将错误日志专门重定向到另一个文件,如下所示,否则不会记录错误

nohup python myscript.py > myscript.out 2> myscript.err