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


Posted in Python onJune 24, 2015

保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。

使用装饰器实现,便于重用

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.
Python 相关文章推荐
Python的加密模块md5、sha、crypt使用实例
Sep 28 Python
详细解析Python中__init__()方法的高级应用
May 11 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
让Django支持Sql Server作后端数据库的方法
May 29 Python
Python中collections模块的基本使用教程
Dec 07 Python
python多线程实现TCP服务端
Sep 03 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 Python
python基础入门之字典和集合
Jun 13 Python
Python中的默认参数详解
Jun 24 #Python
Python中的下划线详解
Jun 24 #Python
Python装饰器使用实例:验证参数合法性
Jun 24 #Python
Python线程详解
Jun 24 #Python
Python函数式编程指南(四):生成器详解
Jun 24 #Python
Python函数式编程指南(三):迭代器详解
Jun 24 #Python
Python函数式编程指南(二):从函数开始
Jun 24 #Python
You might like
MYSQL环境变量设置方法
2007/01/15 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
帝国cms常用标签汇总
2015/07/06 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
vue-star评星组件开发实例
2018/03/01 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
python实现按首字母分类查找功能
2019/10/31 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
.net面试题
2016/09/17 面试题
企业厂长岗位职责
2013/12/17 职场文书
大学生秋游活动方案
2014/02/17 职场文书
财务统计员岗位职责
2015/04/14 职场文书
网络研修心得体会
2016/01/08 职场文书
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android