从正在运行的程序中获取变量

2023-12-06

我有一个运行数天的脚本,里面有一个计数器。计数器定期写入文件,是否可以从另一个 python 脚本、linux 命令甚至 java 找出计数器设置的值?

简单的Python计数器示例:

import time
import random

a = 0
while True:
    a +=1
    time.sleep(random.random())

我对以下的价值感兴趣a在给定的时间。


是的,你可以使用任何工控方法例如,你可以通过套接字发送计数器:

self.request.sendall(json.dumps(dict(counter=a)).encode('ascii'))

如果您想从无法修改的已运行进程中获取值,那么您可以尝试连接调试器:

$ sudo gdb python <pid of running process>

要启用特定于 python 的帮助程序命令,请添加到您的~/.gdbinit:

add-auto-load-safe-path /path/to/python-gdb.py

示例 gdb 会话可能如下所示:

>>> thread apply all py-list

Thread 1 (Thread 0x7f68ff397700 (LWP 9807)):
   2    import random
   3    
   4    a = 0
   5    while True:
   6        a +=1
  >7        time.sleep(random.random())
>>> py-print a
global 'a' = 83

从另一个 Python 脚本中,您可以以批处理模式运行 gdb:

#!/usr/bin/env python
import shlex
import subprocess

cmd = shlex.split("sudo gdb --batch -ex 'py-print a' python") + [str(pid)]
output = subprocess.check_output(cmd, stderr=subprocess.DEVNULL,
                                 cwd=path_to_python_gdb)
a = int(output.rsplit(b'\n', 2)[-2].rpartition(b' ')[2])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从正在运行的程序中获取变量 的相关文章

随机推荐

  • 是否能保证线程在 aspnet 中完成?

    我在 aspnet 中有这个简单的代码 假设没有异常 文件锁定或进程终止 new Thread gt Thread sleep 15000 GC Collect File Write dummy file Start GC Collect
  • 想要检测浏览器关闭事件?

    我正在开发任何需要检测用户是否关闭选项卡或浏览器的应用程序 以便我可以将用户与其他用户断开连接 基本上它是一个聊天应用程序 我用过 window onbeforeunload confirmExit function confirmExit
  • 自定义分类 - 根据角色或能力设置访问权限

    我刚刚学习 WordPress 的自定义分类法 如何限制我的用户使用分类法的访问权限 例如 我创建了一个名为featured我只希望编辑及以上角色能够向此分类添加帖子 如何设置访问级别 无论是基于用户角色还是能力 两者都适合我 这是我用于分
  • URL 中的日期 dd/mm/yyyy

    我在 URL 中传递一个日期 dd mm yyyy 格式如下 http www website com parameter 20 02 2000 我正在使用以下 PHP 将其转换为 YYYY MM DD 格式 我的数据库如下 SELECT
  • Python Curses - 打印 Ascii 艺术

    我有一个很长的多行 ascii art 字符串 我想使用 Pythoncurses 模块将其呈现给用户 我对此有点困惑 因为在curses中打印字符串的唯一方法是addstr y x string 它只打印到一行 关于如何实现这一点有什么想
  • 如何在JPA中实现复杂的多对多关系?

    这里是数据库架构 CREATE TABLE Products id INT NOT NULL AUTO INCREMENT category id INT NOT NULL description VARCHAR 100 price DEC
  • 如何从多个匹配对象中删除数组中的单个对象

    var testarray NSArray testarray 1 2 2 3 4 5 3 print testarray testarray removeObject 2 我想从多个匹配对象中删除单个对象 例如 myArray 1 2 2
  • 实时编辑用户输入

    是否可以自动插入字符EditText 当用户输入数据时 IE 如果用户输入一个长数字 例如123456789012 这个数字是否有可能在他在编辑文本框中键入时出现 但每 4 个字符有一个破折号 因此 当您输入上面的数字时 您会看到它被输入到
  • 圆形图像按钮android

    我有一个如图所示的图像按钮 我想要它周围的红色空间 它将是透明的 只是用红色来标识空间 将不可点击 是否可以 我尝试了不同的代码 例如通过 xml 或一些圆形图像视图代码 但没有任何帮助 无需计算任何内容 您唯一需要做的就是在按钮模板 xm
  • 在浏览器中强制使用 Mime 类型(使用 Javascript)

    我认为出于安全考虑这是不可能的 但是 是否可以强制浏览器处理具有某种 mime 类型的文件不控制服务器 我正在从 file 在客户端的机器本身上 提供文件 并且我希望文本文件可以在其关联的文本编辑器中打开 注意 Firefox 只是打开文件
  • 在递归函数调用之前使用 return 子句与不使用 return 子句有何不同?

    我只是在尝试一些递归 并注意到一些让我困惑的事情 让我用一些代码示例来说明 function loop x if x gt 10 return x loop x 1 the recursive call loop 0 上面的调用返回unde
  • 设计内存有限的记忆系统的简单方法是什么?

    我正在编写一个手动计算记忆系统 呃 在 Matlab 中 简单的部分很简单 执行计算后将数据放入记忆系统的一种方法 一种从记忆中查询和获取数据的方法 一种查询系统所有 密钥 的方法 这些部分没有太多疑问 问题是我的计算机的内存量有限 因此有
  • Firebase UI 回收器适配器中的不同子集合

    我正在尝试获取不同的子集合并使它们适应我的RecyclerAdapter与 Firebase UI 我的Cloud Firestore设置如下 user Collection uid1 Document name email fields
  • 将 XML 文档导入 Rails 数据库?

    我一直在阅读一个又一个的教程 但似乎没有什么对我有用 目标是获取包含元素和属性的 XML 文档并将数据插入数据库中 每个元素 属性将是数据库中的一列 每个条目是一行 这是我一直在使用的虚构 XML 文档
  • 使用 html 链接打开 Android 日历

    我需要在 Android 设备上打开日历应用程序 使用简单的 html 链接 我可以在 iOS 中使用 href CALSHOW 执行此操作 安卓有类似的东西吗 或者有什么解决方法吗 提前致谢 在 Android 上 有一种比 ios ur
  • numpy.random.shuffle 返回 None

    我安装了numpy1 8 2然后我尝试了以下代码 import numpy as np a np arange 10 print a np random shuffle a 但它的输出是 0 1 2 3 4 5 6 7 8 9 None 我
  • heroku:Spring Boot 仅使用 https 访问端点

    我在heroku 上部署了一个Spring Boot java 应用程序 我想确保我的注册端点只能通过 https 访问 到目前为止我知道 heroku 使用负载均衡器 它将每个 https 连接重定向到带有特殊标头 X forwarded
  • Apache Spark-reducebyKey-Java-

    我正在尝试了解reduceByKeySpark中使用java作为编程语言 假设我有一句话 我就是我 我将句子分解成单词并将其存储为列表 I am who I am 现在这个函数分配1对每个单词 JavaPairRDD
  • java正则表达式插入字符作为特定索引位置

    我需要简单地在字符串的第三个位置插入字符 ie EURUSD 变成 EUR USD 我正在使用一些程序 GUI 来执行此操作 它接受正则表达式模式和替换 我知道这一定非常简单 但我似乎找不到简单的答案 Replace 3 3 3 人物 位于
  • 从正在运行的程序中获取变量

    我有一个运行数天的脚本 里面有一个计数器 计数器定期写入文件 是否可以从另一个 python 脚本 linux 命令甚至 java 找出计数器设置的值 简单的Python计数器示例 import time import random a 0