正在运行的Python进程,修改进程使用的变量

一个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打断点调试~~~

推荐阅读更多精彩内容

  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 1,865评论 0 6
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 220评论 0 0
  • 第1章 小试牛刀 $ 是普通用户,# 表示管理员用户 root。 shebang:#!。sharp / hash ...
    Baggio科技书摘阅读 2,564评论 1 2
  • Linux习惯问题: 在vim编辑时,按了ctrl + s后,再按ctrl + q就可以继续执行了。ctrl + ...
    光着脚的鞋阅读 1,139评论 0 7
  • 今天从徐州开到沧州,高速上的车明显变多了,堵车足足耽误了快三个小时,感觉整个人的脑子到现在都是晃荡的…脑子太晃太累...
    c2cfbbac795f阅读 17评论 0 0