美文网首页
正在运行的Python进程,修改进程使用的变量

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

作者: __六便士 | 来源:发表于2019-03-11 22:45 被阅读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打断点调试~~~

    相关文章

      网友评论

          本文标题:正在运行的Python进程,修改进程使用的变量

          本文链接:https://www.haomeiwen.com/subject/bebipqtx.html