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获取android设备的GPS信息脚本分享
Mar 06 Python
python实现中文分词FMM算法实例
Jul 10 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
python程序控制NAO机器人行走
Apr 29 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
如何在django中运行scrapy框架
Apr 22 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 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 error_log 函数的使用
2009/04/13 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
js重写方法的简单实现
2016/07/10 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
Sublime开发python程序的示例代码
2018/01/24 Python
python操作excel的方法
2018/08/16 Python
kafka-python批量发送数据的实例
2018/12/27 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
无工作经验者个人求职信范文
2013/12/22 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
七年级历史教学反思
2014/02/05 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
个人收入证明范本
2015/06/12 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript