Python程序员

python 只运行一个实例(windows 自启动)

2017-06-05  本文已影响52人  时尚灬IT男

       在实际应用中我们常常希望某个程序不管开启多少次,都只保证一个实例在运行。接下来就是介绍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

在脚本的主函数上使用:

@just_one_instance def main():       “ 你的程序 ”
if __name__ == '__main__':
       main()




 
  在Windows上设置成自启动最快最简单的方法:
右键按住你要自启动的.exe程序拖到 Windows  的启动文件夹(startup)下,创建快捷方式,启动文件的位置 : Windows开始键-程序-启动文件夹



上一篇下一篇

猜你喜欢

热点阅读