您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

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

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   这篇文章主要介绍了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.