python - 从作为 python 脚本的 Linux 进程调用类方法

标签 python linux class methods process

Linux 机器正在运行如下所示的进程:

root     18983 18961  0 02:22 pts/0    00:00:04 /xxx/grpcEnv/bin/python /xxx/python/exabgp_shim/ExaBGP_server.py

python 脚本 ExaBGP_server.py 主要是启动服务器并在无限循环中等待。该脚本还包含一些定义了不同方法的类。

问题:

如何在进程已经运行时调用上述python脚本的类方法?

最佳答案

除非您在服务器中有代码允许您在解释器运行时或启动时访问它,否则没有简单的方法可以做到这一点。

编辑:This "manhole" library对于您的用例来说看起来很有希望,尽管与列出的其他想法一样,它确实需要对服务器代码进行一些修改才能实现。

这段代码是你写的吗?如果是这样,您可以修改它以在后台线程中运行服务器,然后使用 code 模块在控制台上启动交互式解释器,并提供适当的模块/类实例(如果需要)可访问。这仅适用于调试,因为这有效地将非交互式服务器转变为交互式 Python 进程,恰好在后台运行服务器。

Twisted 库支持基于 telnet 或 SSH 的 manhole功能,您基本上可以在任何时候通过 shell 进入正在运行的 Python 进程,但是将 Twisted 集成到非 Twisted 代码库中并不值得为此功能带来麻烦。我认为这个概念还有其他实现,包括一些提供花哨的 HTML/JS 界面的实现,但我没有方便的名称/链接。

关于python - 从作为 python 脚本的 Linux 进程调用类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36470424/

相关文章:

c++ - C++ 将对象的内容写入文件

python - 在 Python 上使用 app.route 进行循环

python - 执行最佳循环排序知道最后的顺序

python - 如何应用哈希算法而不是 for 循环来降低 python 中的时间复杂度?

java - 为什么我在 JVM 下运行时在我的 Ada 共享库上得到 "storage error"

ARM 中的 Linux Process Context 和 SVC 调用

c# - 无法使用 32feet.Net C# 库通过蓝牙将文件从 Windows 传输到 Linux

PHP:提供静态和非静态方法的类的设计模式

c++ - 我不能在不遇到编译错误的情况下创建自定义类

python - 快速选择范围内一定百分比的元素