Python实现保证只能运行一个脚本实例

yipeiwu_com6年前Python基础

保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。

使用装饰器实现,便于重用

复制代码 代码如下:

import functools
def just_one_instance(func):

'''


装饰器

如果已经有实例在跑则退出

复制代码 代码如下:

:return:

'''
    @functools.wraps(func)
    def f(*args,**kwargs):
        import socket
        try:
# 全局属性,否则变量会在方法退出后被销毁
            global s
            s = socket.socket()
            host = socket.gethostname()
            s.bind((host, 60123))
        except:
            print('already has an instance')
            return None
        return func(*args,**kwargs)
    return f
[code]
在脚本的主函数上使用:
[code]
@just_one_instance
main():
    do sth.

相关文章

pandas的相关系数与协方差实例

1、输出百分比变化以及前后指定的行数 a = np.arange(1,13).reshape(6,2) data = DataFrame(a) #计算列的百分比变化,如果...

Win10下Python环境搭建与配置教程

Win10下Python环境搭建与配置教程

本教程为大家分享了win10下Python环境安装配置教程,供大家参考,具体内容如下 1.在https://www.python.org/downloads/release/python...

Python单元测试工具doctest和unittest使用解析

Python单元测试工具doctest和unittest使用解析

Python标准库包含两个测试工具。 doctest:一个简单的模块,为检查文档而设计,但也适合用来编写单元测试。 unittest:一个通用的测试框架。 一、使用doctest进行单元...

Python Django的安装配置教程图文详解

Python Django的安装配置教程图文详解

Django 教程 Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的We...

解决Shell执行python文件,传参空格引起的问题

使用shell调用一个python文件,并向shell中传入参数,举例如下: p1='wang' p2='shuang' python py文件 $p1 $p2 这种情况可以正常执...