保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。使用装饰器实现,便于重用
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保证只能运行一个脚本实例, 感谢原作者分享。 敢于奋斗的人,心中不怕困难。