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中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
Python正则表达式匹配ip地址实例
Oct 09 Python
python实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
Django中的文件的上传的几种方式
Jul 23 Python
python实现电子产品商店
Feb 26 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
python 字典访问的三种方法小结
Dec 05 Python
基于python实现模拟数据结构模型
Jun 12 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
虚拟环境及venv和virtualenv的区别说明
Feb 05 Python
python源文件的字符编码知识点详解
Mar 04 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 strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
php封装一个异常的处理类
2017/06/08 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
jQuery自定义添加"$"与解决"$"冲突的方法
2015/01/19 Javascript
Javascript实现单例模式
2016/01/24 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
vue强制刷新组件的方法示例
2019/02/28 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python相似模块用例
2016/03/04 Python
剖析Python的Twisted框架的核心特性
2016/05/25 Python
Python selenium文件上传方法汇总
2020/11/19 Python
python 性能优化方法小结
2017/03/31 Python
Python之re操作方法(详解)
2017/06/14 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
详解Python中的分支和循环结构
2020/02/11 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
创立科技Java面试题
2015/11/29 面试题
邀请书格式范文
2015/02/02 职场文书