当前位置: 首页 > 面试题库 >

python:是否可以将控制台附加到正在运行的进程中

阙沛
2023-03-14
问题内容

我只想查看流程的状态,是否可以将控制台附加到流程中,所以我可以在流程内部调用函数并查看一些全局变量。

最好在不受影响的情况下运行该进程(当然,性能可能会下降一点)


问题答案:

如果您有权访问程序的源代码,则可以相对轻松地添加此功能。

参见配方576515:Debugging a running python process by interrupting and providing an interactive prompt (Python)

去引用:

这提供了允许所有使用它的python程序在当前点被中断并通过普通python交互式控制台进行通信的代码。这允许调查本地,全局和关联程序状态,以及调用任意函数和类。

要使用,进程应导入模块,并在启动过程中随时调用listen()。要中断此过程,可以直接运行脚本,将要调试的过程的过程ID作为参数。

rconsole提供了大致相同概念的另一种实现。从文档中:

rconsole是具有自动完成功能的远程Python控制台,可用于检查和修改正在运行的脚本的名称空间。

要在脚本中调用,请执行以下操作:

from rfoo.utils import rconsole
rconsole.spawn_server()

要从外壳连接,请执行以下操作:

$ rconsole

安全说明:以spawn_server()开头的rconsole侦听器将接受任何本地连接,因此在共享主机或类似环境中使用时可能不安全!



 类似资料:
  • 问题内容: 我使用“永远”来运行我的应用程序。我想附加到运行环境中以检查我的应用程序。那我该怎么办? 问题答案: 来自http://nodejs.org/api/debugger.html: 高级用法 通过使用–debug命令行标志启动Node或使用SIGUSR1信号通知现有的Node进程,可以启用和访问V8调试器。 找到您的进程的PID,然后发送就可以了: 然后运行并浏览到它指示的URL。本教程

  • 我试图在我的控制台应用程序中创建流程动画。有没有可能为此需求重写之前的台词?我知道< code>\r但它只对当前行有效。 如果不可能,我怎么能达到动画效果?谢谢。 我的主机是标准的Ubuntu 12.04终端模拟器。 感谢@MrSmith42,我制作了这个简单的演示,它展示了改写行的方法:

  • 本文向大家介绍是否可以在JavaScript执行中写入MongoDB控制台?,包括了是否可以在JavaScript执行中写入MongoDB控制台?的使用技巧和注意事项,需要的朋友参考一下 要在控制台上编写,您需要使用方法。语法如下- 要显示对象,可以使用。语法如下- 让我们实现这两个功能。第一个查询如下所示以显示某些内容- 以下是控制台上的输出- 让我们创建一个对象。查询如下- 这是显示上述对象“

  • 问题内容: 我有一个Java Web应用程序在Sun Java 6 JVM中的tomcat下运行。是否可以将scala或clojure REPL附加到正在运行的JVM? Web应用程序启动并运行后,将在正在运行的VM中设置进行调用的上下文。因此,这对于调用用于增量,探索性开发和调试的任意java方法调用确实很有帮助。 问题答案: 根据您的要求复制了另一个问题的答案: liverepl:无需任何特殊

  • 我有一个以.NET标准1.5为目标的项目,它作为几个DLL部署在Nuget上。该项目是从Java移植而来的。在项目的一些类中,有静态的方法,这些方法是从命令行运行的。 null 我想知道的是,有没有一种方法来编译DLL,这样它就可以在没有两个独立的(混乱的)DLL的情况下使用? 基本上,我试图获得与Java中类似的功能,在Java中,包可以被应用程序引用或在命令行上运行(并在命令行上指定入口目标)

  • 问题内容: 为了更好地理解Java中的工作原理,我想知道是否可以在运行时动态地向类路径添加目录。 例如,如果我使用 “ java -jar mycp.jar” 启动一个 .jar 并输出 java.class.path 属性,则可能会得到: 现在可以在运行时修改该类路径以添加另一个目录吗?(例如,在使用我要添加的目录中的 .jar 首次调用类之前)。 问题答案: 您可以使用以下方法: 但是您需要使