python判断自身是否正在运行

来源:互联网 发布:招聘网站知乎 编辑:程序博客网 时间:2024/06/14 13:02

# coding: utf-8import osimport psutilimport timedef 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 Falsedef 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,运行程序。


原创粉丝点击