python强制结束运行监听_python脚本如何监听终止进程行为,如何通过脚本名获取pid...

文章目录

一、前言

二、最初的想法:直接获取脚本中的变量值

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值