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存取XML的常见方法实例分析
Mar 21 Python
Python基于time模块求程序运行时间的方法
Sep 18 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
python list转矩阵的实例讲解
Aug 04 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
使用django的ORM框架按月统计近一年内的数据方法
Jul 18 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
Python 实现一个计时器
Jul 28 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
怎样才能成为PHP高手?学会“懒惰”的编程
2006/12/05 PHP
PHPCMS的使用小结
2010/09/20 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
CI框架常用方法小结
2016/05/17 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
基于python实现微信模板消息
2015/12/21 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
Java中compareTo和compare的区别
2016/04/12 面试题
解释一下钝化(Swap out)
2016/12/26 面试题
暑期培训班策划方案
2014/08/26 职场文书
python中print格式化输出的问题
2021/04/16 Python
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
Vue h函数的使用详解
2022/02/18 Vue.js