重定向到远程Python应用程序的文件输出,始于SSH



[编辑]

我在远程服务器中有一个Python应用,我需要调试,当我本地运行该应用程序时,它会打印一些我需要监视的调试信息(包括Python Trackbacks)。

感谢杰里米(Jeremy),我必须使用 tail -f 监视输出文件,然后研究他的代码,我在这里找到了他的命令的以下变体:

ssh root@$IP 'nohup python /root/python/run_dev_server.py &>> /var/log/myapp.log &'

这几乎可以使我几乎完全想要的东西,loggin信息和python追溯,但是我没有从我需要的python中获取任何信息。

所以我也尝试了他的命令:

ssh root@$IP 'nohup python /root/python/run_dev_server.py 2>&1 >> /var/log/myapp.log &'

它在文件中登录了从 print 以及日志记录信息的程序的输出,但是所有的追溯丢失了,因此我无法调试Python异常。

有没有一种方法可以捕获应用程序产生的所有信息?

预先感谢您的任何建议。

我建议这样做这样的事情:

/usr/bin/nohup COMMAND  ARGS 2>&1 >> /var/log/COMMAND.log &
/bin/echo $! > /var/run/COMMAND.pid

nohup在关闭终端/ssh会话后,将过程保持活力

获取stackTrace输出(您可以打印到Stdout,或者做一些诸如电子邮件之类的事情)将以下行添加到您的Python代码中。

    导入系统    导入追踪    _old_excepthook = sys.excepthook    Def MyExcepthook(Exctype,value,tb):            #如果ExCtype ==键盘线路:#处理键盘事件            #现在打印到STDOUT,但可以在这里发送电子邮件或其他任何内容。            打印Trackback.print_tb(TB);            _old_excepthook(Exctype,value,Trackback)    sys.excepthook = myexcepthook

这将捕获所有异常(包括键盘中断,所以要小心)

相关内容

  • 没有找到相关文章

最新更新