萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> 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.

copyright © 萬盛學電腦網 all rights reserved