python判断自身是否正在运行的方法

yipeiwu_com6年前Python基础

如下所示:

# coding: utf-8
import os
import psutil
import time
 
def write_pid():
 pid = os.getpid()
 fp = open("pid.log",'w')
 fp.write(str(pid))
 fp.close()
 
def read_pid():
 if os.path.exists("pid.log"):
  fp = open("pid.log",'r')
  pid = fp.read()
  fp.close()
  return pid
 else:
  return False
 
def write_log(log_content):
 time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
 log_content = time_now+"---->"+log_content+os.linesep
 fp = open('recognition.log','a+')
 fp.write(log_content)
 fp.close()
 
def run():
 pid = read_pid()
 #print pid
 pid = int(pid)
 if pid:
  running_pid = psutil.pids()
  if pid in running_pid:
   log_content = "process is running..."
   write_log(log_content)
  else:
   write_pid()
   time.sleep(20)
 else:
  write_pid()
  time.sleep(20)
 
if __name__ == "__main__":
 run()

实现思路:

1)用os.getpid()获取当前程序运行PID,将PID存入文件中

2)用psutil模块获取当前系统所有正在运行的pid

3)读取之前存入的PID,判断该PID是否在系统PID中

4)如果文件中的PID在系统PID中,则退出程序,否则存入新的PID,运行程序。

以上这篇python判断自身是否正在运行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python 3.x读写csv文件中数字的方法示例

前言 本文主要给大家介绍了关于Python3.x读写csv文件中数字的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 读写csv文件 读文件时先产生str的列...

Python实现Linux下守护进程的编写方法

本文实例讲述了Python实现Linux下守护进程的编写方法,分享给大家供大家参考,相信对于大家的Python程序设计会起到一定的帮助作用。具体方法如下: 1. 调用fork()以便父进...

使用django的ORM框架按月统计近一年内的数据方法

如下所示: # 计算时间 time = datetime.datetime.now() - relativedelta(years=1) # 获取近一年数据 one_year_dat...

python实现感知器算法详解

python实现感知器算法详解

在1943年,沃伦麦卡洛可与沃尔特皮茨提出了第一个脑神经元的抽象模型,简称麦卡洛可-皮茨神经元(McCullock-Pitts neuron)简称MCP,大脑神经元的结构如下图。麦卡洛可...

Python: 传递列表副本方式

有时候,需要禁止函数修改列表。 为解决这个问题,可向函数传递列表的副本而不是原件;这样函数所做的任何修改都只影响副本,而丝毫不影响原件。 要将列表的副本传递给函数,可以像下面这样做:...