文章目录
一、前言
二、最初的想法:直接获取脚本中的变量值
1、获取运行中py脚本的变量值
2、换一种方式
3、为什么不能获取脚本中的变量
4、下下策,使用使用python的gdb调试工具
三、python脚本监听终止进程行为
1、python的signal模块以及atexit模块
2、使用os.kill()退出程序
3、脚本监听中止信号代码实例
四、python通过脚本名获取pid
1、通过脚本名称获取pid
2、脚本内获取pid
3、单个脚本监听命令行kill行为
一、前言
需求是: 一个正在运行的脚本,当结束脚本的时候,需要获取里面的变量,如果变量值存在则执行插入数据操作。如果变量不存在则正常关闭脚本。
这个需求可以理解成是在要杀死脚本的时候,让脚本监听到这个终止事件,从而做一些事情,比如持久化数据之类的。在实现需求的时候碰到很多有意思的知识点,下面咱们就来讲一下这些知识点。
二、最初的想法:直接获取脚本中的变量值
刚开始是想着定义一个test()方法,当要结束a脚本的时候,先执行另一个b脚本,调用a脚本的test()方法获取变量,然后对比变量的值,符合条件就执行数据库操作等。
1、获取运行中py脚本的变量值
刚开始是想着获取脚本中的变量,例如变量名是test,通过类似于:
import a
print a.test
但是这种方式只能获取变量的初始值,比如在a脚本刚开始的时候,设置 test =1,后续代码中累加test的值,我们通过这种方式,获取的test的值一直都是1,并不能获取脚本中变量的实时值
2、换一种方式
参考:https://blog.csdn.net/shiyf/article/details/47093899
完全按照这个参考博客的代码,本地测试的结果还是一样的,并不能获取脚本中的变量。仔细想想也是,人家脚本运行的时候,肯定是在一套封闭的环境中运行,想从中拿到变量不太科学。虽然是这么想,但是并不知道其中的原理
3、为什么不能获取脚本中的变量
main.py 文件&#x