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装饰器的函数式编程详解
Feb 27 Python
Python 'takes exactly 1 argument (2 given)' Python error
Dec 13 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
通过python将大量文件按修改时间分类的方法
Oct 17 Python
PYQT5实现控制台显示功能的方法
Jun 25 Python
使用python socket分发大文件的实现方法
Jul 08 Python
python银行系统实现源码
Oct 25 Python
Python安装OpenCV的示例代码
Mar 05 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
基于python实现计算两组数据P值
Jul 10 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
Python OpenCV实现图形检测示例详解
Apr 08 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
php flush类输出缓冲剖析
2008/10/19 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
php简单压缩css样式示例
2016/09/22 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
理解javascript回调函数
2014/12/28 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
Vue实现圆环进度条的示例
2021/02/06 Vue.js
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
keras打印loss对权重的导数方式
2020/06/10 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
小学综合实践活动总结
2014/07/07 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python
深入理解python协程
2021/06/15 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
python使用BeautifulSoup 解析HTML
2022/04/24 Python