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的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
Python yield 使用方法浅析
May 20 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
pytorch构建网络模型的4种方法
Apr 13 Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
详解django的serializer序列化model几种方法
Oct 16 Python
浅谈pyqt5中信号与槽的认识
Feb 17 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
Python实现手绘图效果实例分享
Jul 22 Python
Python软件包安装的三种常见方法
Jul 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python subprocess模块学习总结
2014/03/13 Python
python基于ID3思想的决策树
2018/01/03 Python
在python 中实现运行多条shell命令
2019/01/07 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
校本教研工作制度
2014/01/22 职场文书
产品质量承诺书
2014/03/27 职场文书
企业员工集体活动方案
2014/08/17 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
九年级语文教学反思
2016/03/03 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL