各位用户为了找寻关于Python实现保证只能运行一个脚本实例的资料费劲了很多周折。这里教程网为您整理了关于Python实现保证只能运行一个脚本实例的相关资料,仅供查阅,以下为您介绍关于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.