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

2019-03-11  本文已影响0人  __六便士

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

上一篇下一篇

猜你喜欢

热点阅读