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抓取模板之家的CSS模板
Mar 16 Python
python实现图书管理系统
Mar 12 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
python删除文本中行数标签的方法
May 31 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
如何利用Python模拟GitHub登录详解
Jul 15 Python
python字典的常用方法总结
Jul 31 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
Django实现前台上传并显示图片功能
May 29 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 Python
爬虫代理的cookie如何生成运行
Sep 22 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
深入file_get_contents与curl函数的详解
2013/06/25 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
php时间戳转换的示例
2014/03/31 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
破解Session cookie的方法
2006/07/28 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
Python pass 语句使用示例
2014/03/11 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
python3+PyQt5实现柱状图
2018/04/24 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
python实现网页录音效果
2020/10/26 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
诉前财产保全担保书
2014/05/20 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
值班管理制度范本
2015/08/06 职场文书