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

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

    原文作者:放纵式守候
    原文地址: https://www.jianshu.com/p/06134ca966de
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞