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语言描述随机梯度下降法
Jan 04 Python
python实现K最近邻算法
Jan 29 Python
PyQt5实现下载进度条效果
Apr 19 Python
Python对数据进行插值和下采样的方法
Jul 03 Python
PyCharm配置mongo插件的方法
Nov 30 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
python程序中的线程操作 concurrent模块使用详解
Sep 23 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
python中sys模块是做什么用的
Aug 16 Python
Python colormap库的安装和使用详情
Oct 06 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 Python
Python批量将csv文件转化成xml文件的实例
May 10 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下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
php简单统计在线人数的方法
2016/05/10 PHP
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
js简单时间比较的方法
2016/08/02 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
js时间转换毫秒的实例代码
2019/08/21 Javascript
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
Python线程指南分享
2019/11/19 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
学python最电脑配置有要求么
2020/07/05 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
党员转正申请报告
2015/05/15 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL
Python循环之while无限迭代
2022/04/30 Python