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

如下所示:

# 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判断自身是否正在运行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python中使用异常处理来判断运行的操作系统平台方法

    代码实例: 复制代码 代码如下: try:     import termios, TERMIOS 1 except ImportError:     try:         import msvcrt 2     except ImportError:         try:             from EasyDialogs import AskPassword 3         except ImportError:             getpass = "default

  • Python判断变量是否已经定义的方法

    Python判断变量是否已经定义是一个非常重要的功能,本文就来简述这一功能的实现方法. 其实Python中有很多方法可以实现判断一个变量是否已经定义了.这里就举出最常用的两种作为示例,如下所示: 方法一:try except方法: def isset(v): try : type (eval(v)) except : return 0 else : return 1 用法: if isset('user_name'): print 'user_name is defined' else prin

  • Python脚本判断 Linux 是否运行在虚拟机上

    在 WebHostingTalk 论坛上有些国外奸商会把虚拟机当作独立服务器卖,去年7月份的时候就有一位中国同胞上当受骗,并在 WHT 上发帖声讨,证据确凿,甚至连服务商自己也承认,回帖达355篇.这家独立服务器/VPS 提供商 HostATree.com 居然大胆的把 OpenVZ VPS 这种一看就知道是虚拟机的虚拟机当作独立服务器卖,晕,至少也要弄个 VMWare/KVM/Xen HVM 吧(更难发现是虚拟机),用 OpenVZ 这种容器也太欺负人了:)昨天恰好收到网友一封邮件问到了如何判

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

    如下所示: # 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 =

  • python判断字符串是否是json格式方法分享

    在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例: Python import json def is_json(myjson): try: json_object = json.loads(myjson) except ValueError, e: return False return True 运行代码编辑模式复制折叠 输出结果: Python print is_json("{}") #

  • python判断字符串是否纯数字的方法

    本文实例讲述了python判断字符串是否纯数字的方法.分享给大家供大家参考.具体如下: 判断的代码如下,通过异常判断不能区分前面带正负号的区别,正则表达式可以根据自己需要比较灵活的写,通过isdigit方法用来判断是否是纯数字,测试代码如下 复制代码 代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- a = "1" b = "1.2" c = "a" #通过抛出异常 def is_num_by_exc

  • C#判断某程序是否运行的方法

    本文实例讲述了C#判断某程序是否运行的方法,分享给大家供大家参考. 具体实现方法如下: [DllImport("user32.dll")] private static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("user32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); [DllImp

  • android判断软件是否第一次运行的方法

    本文实例讲述了android判断软件是否第一次运行的方法.分享给大家供大家参考.具体如下: SharedPreferences sharedPreferences = this.getSharedPreferences("share", MODE_PRIVATE); boolean isFirstRun = sharedPreferences.getBoolean("isFirstRun", true); Editor editor = sharedPreferen

  • 对python 判断数字是否小于0的方法详解

    为了精度更准确 可以使用数字的绝对值 < 1.0e-16  或者 < 1.0e-8来对比 abs(Num) <  1.0e-16 以上这篇对python 判断数字是否小于0的方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python 判断图像是否读取成功的方法

    大批量处理数据时,若因个别图像错误导致代码中断,从头再来比较浪费时间 对未成功读入的图像跳过(读图 import cv2) for i in range(1,1000): image = cv2.imdecode(np.fromfile('xxx.jpg', dtype=np.uint8), -1) try: image.shape except: print('fail to read xxx.jpg') continue ...... 若该图像可能不存在,即没有该图像的文件名,也可用try判

  • 将python文件打包exe独立运行程序方法详解

    首先需要安装pyinstaller库. pip install pyinstaller exe程序打包步骤 cmd 进入要编译的python文件所在的文件夹, 然后 pyinstaller -F hello.py hello.py就是我要打包的文件. 常用参数: -F 生成单个的exe文件. -w 隐藏运行窗口. -h 可以查看帮助信息,更多指令可以通过这个查看. 最开始 D:\pyinstaller 目录下只有hello.py这一个文件,其它的文件都是后生成的. 生成的exe文件在dist里,

  • python脚本在docker上运行的方法

    首先为docker镜像创建一个特定的项目目录.例如: mkdir /home/pi/Desktop/teasr/capturing 将dockerfile和脚本复制到那里并将当前上下文更改为此目录 cp /home/pi/Desktop/teasr/capturing.py /home/pi/Desktop/teasr/dockerfile /home/pi/Desktop/teasr/capturing/ cd /home/pi/Desktop/teasr/capturing 这是最佳实践,因

  • python判断变量是否为列表的方法

    python的数据类型有:数字(int).浮点(float).字符串(str),列表(list).元组(tuple).字典(dict).集合(set). 一般通过以下方法进行判断: 1.isinstance(参数1,参数2) 描述:该函数用来判断一个变量(参数1)是否是已知的变量类型(参数2) 类似于type() 参数1:变量 参数2:可以是直接或间接类名.基本类型或者由它们组成的元组. 返回值:如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False. 例子

随机推荐