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读写Excel文件方法介绍
Nov 22 Python
Python脚本实现格式化css文件
Apr 08 Python
Python创建模块及模块导入的方法
May 27 Python
python用10行代码实现对黄色图片的检测功能
Aug 10 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
PyQt5实现拖放功能
Apr 25 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
Django实现发送邮件功能
Jul 18 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 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』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
jquery实用代码片段集合
2010/08/12 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
在HTML中使用JavaScript的两种方法
2020/12/24 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
Python编写生成验证码的脚本的教程
2015/05/04 Python
Python学习笔记之解析json的方法分析
2017/04/21 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
计算机专业学生求职信分享
2013/12/15 职场文书
《问银河》教学反思
2014/02/19 职场文书
2014年教师节寄语
2014/04/03 职场文书
公关活动策划方案
2014/05/25 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL