一个Python脚本,想要留个接口,在进程运行过程中,修改一个使用的变量,该怎么弄呢~~~
一个笨办法:使用文件通信!!!
一个简单例子:获取某个进程的pid进行处理,指定一个pid进行处理
实现:指定的pid,通过解析文件获取,文件存在,则处理文件内容,不存在,则处理原有内容。
#!/usr/bin/env python
import os
import commands
import time
def main():
num = 0
while True:
pid = 0
if os.path.exists("pid.log"):
with open("pid.log") as fp:
pid = fp.read().strip("\r\n")
if not pid:
cmd = "ps ux | grep -v grep | grep lsd | awk {'print $2'}"
status, output = commands.getstatusoutput(cmd)
pid = output.strip()
print "pid is %s" % pid
num += 1
time.sleep(5)
if num > 100:
break
if __name__ == "__main__":
main()
运作结果:
先执行python get_pid.py
屏幕显示:
pid is 276
pid is 276
pid is 276
在另外一个窗口会话,同样路径下:echo "1234" > pid.log
屏幕显示:
pid is 276
pid is 276
pid is 276
pid is 1234
pid is 1234
删除文件后,则又会显示pid is 276
hh:使用文件这种方式,还可以替换脚本中间使用的临时文件,用于问题定位。
eg:一个脚本运行中,想要修改产生的临时文件,定位问题,可以在处理临时文件之前,加上一个死循环,去判断一个空文件在不在(脚本运行之前,准备好空文件),存在则一直死循环。临时文件替换完成后,删除空文件,则代码正常运行~~
当然也可以用pdb打断点调试~~~
网友评论