python保证只运行一个实例

最近有需求希望进程启动的时候能kill掉已经运行的实例

#!/usr/bin/env python
# encoding: utf-8
import time
import os
import sys
import subprocess
def killOldProcess():
    # kill 已有的进程id
    with open('pid.txt', 'a+') as f:
        old_pid = f.readline()
        if old_pid :
            # 确定进程id是运行的当前程序,防止误杀
            ps_info = os.popen("ps -ef | grep %s | awk '{print $2}'" % __file__)
            if old_pid in ps_info:
                os.system('kill -9 %s' % old_pid)
    # 保存当前进程id
    with open('pid.txt', 'w') as f :
        f.write('%d\n' % os.getpid())
if __name__ == '__main__':
    killOldProcess()
    while True :
        time.sleep(1)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,926评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,083评论 19 139
  • 操作系统概论 操作系统的概念 操作系统是指控制和管理计算机的软硬件资源,并合理的组织调度计算机的工作和资源的分配,...
    野狗子嗷嗷嗷阅读 12,114评论 3 34
  • 2016年2月21日,我在这天的前天读完了异类,我很想在自己有生之年活得很成功,尽管还不知道这本书讲的是成功学,还...
    Black_Jack阅读 222评论 0 0
  • 一个好久没有联系的朋友半夜忽然给我发来微信,说上一段恋情终于放下来,也终于不再记恨,更多是心怀感恩,我回复说:恭喜...
    天蓬O帅阅读 191评论 0 0