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

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

import functoolsdef 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

在脚本的主函数上使用:

@just_one_instancemain():    do sth.
python保证只能运行一个脚本实例

相关文章:

你感兴趣的文章:

标签云: