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


Posted in Python onAugust 08, 2019

如下所示:

# 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多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
Python中表达式x += y和x = x+y 的区别详解
Jun 20 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
python使用标准库根据进程名如何获取进程的pid详解
Oct 31 Python
python实现kNN算法
Dec 20 Python
python docx 中文字体设置的操作方法
May 08 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
Pyspark读取parquet数据过程解析
Mar 27 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
PyQt5的相对布局管理的实现
Aug 07 Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 #Python
python各类经纬度转换的实例代码
Aug 08 #Python
Python3.0 实现决策树算法的流程
Aug 08 #Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 #Python
Django rest framework jwt的使用方法详解
Aug 08 #Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 #Python
django基于restframework的CBV封装详解
Aug 08 #Python
You might like
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
js 连接数据库如何操作数据库中的数据
2012/11/23 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python中的面向对象编程详解(上)
2015/04/13 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
python中abs&map&reduce简介
2018/02/20 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
在双python下设置python3为默认的方法
2018/10/31 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
Python多线程的退出控制实现
2020/08/10 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
IBatis持久层技术
2016/07/18 面试题
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
工程部部长岗位职责
2015/02/12 职场文书
人事聘任通知
2015/04/21 职场文书
四则混合运算教学反思
2016/02/23 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python