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中map()与zip()操作方法
Feb 27 Python
浅谈python字符串方法的简单使用
Jul 18 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
python批量导入数据进Elasticsearch的实例
May 30 Python
python实现微信小程序自动回复
Sep 10 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
Django实现从数据库中获取到的数据转换为dict
Mar 27 Python
python实现人脸签到系统
Apr 13 Python
Python字符串及文本模式方法详解
Sep 10 Python
Python3读写ini配置文件的示例
Nov 06 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 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
mysql5详细安装教程
2007/01/15 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
php ios推送(代码)
2013/07/01 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
Python函数参数类型*、**的区别
2015/04/11 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
党建工作汇报材料
2014/12/24 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
MySQL锁机制
2021/04/05 MySQL
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android