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

yipeiwu_com5年前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.

相关文章

tornado+celery的简单使用详解

celery是实现一个简单,灵活可靠的分布式任务队列系统的好选择 tornado则不用过多介绍 在开发机上安装rabbitmq这里就不介绍了 首先是task文件的编写 task.py...

使用Python进行QQ批量登录的实例代码

具体代码如下所示: #coding=utf-8 __author__ = 'Eagle' import os import time import win32gui import w...

利用pyuic5将ui文件转换为py文件的方法

利用pyuic5将ui文件转换为py文件的方法

操作系统上正确配置python环境之后,pyuic5也是一个可以识别的命令行指令 到.ui文件的目录下,直接cmd进入,输入pyuic5 -o 转换的py文件 待转换的ui文件 此时,...

python实现数据导出到excel的示例--普通格式

此文是在django框架下编写,从数据库中获取数据使用的是django-orm 用python导出数据到excel,简单到爆!(普通的excel格式) 安装xlwt pip inst...

python实现根据用户输入从电影网站获取影片信息的方法

本文实例讲述了python实现根据用户输入从电影网站获取影片信息的方法。分享给大家供大家参考。具体如下: 这段python代码主要演示了用户终端输入,正则表达式,网页抓取等 #!/u...