Python实现保证只能运行一个脚本实例
保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。
使用装饰器实现,便于重用
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实现保证只能运行一个脚本实例
保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑. 使用装饰器实现,便于重用 复制代码 代码如下: import functools def just_one_instance(func): ''' 装饰器 如果已经有实例在跑则退出 复制代码 代码如下: :return: ''' @functools.wraps(func) def f(*args,**kwargs): import socket try:
-
Python实现脚本锁功能(同时只能执行一个脚本)
1. 文件锁 脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件. 通过文件的判断来确定脚本是否正在执行. 方法实现也比较简单,这里以python脚本为例 #coding=utf-8 # # 文件锁脚本测试 # import os #操作系统 import time lockfilepath = "/opt/lock.txt"; #判断文件是否存在 if os.path.exists(lockfilepath): #文件存在,说明脚本正在执行 print(&
-
python代码 FTP备份交换机配置脚本实例解析
代码如下 #!/bin/python #coding=utf-8 #python-version=2.75 #使用python2 from ftplib import FTP #引用ftplib库中的FTP功能模块,进行ftp下载使用 import time #引用time模块 import os #引用os模块 """ 使用字典,定义交换机主机,一个字典包含多个键 ,一个键使用一个列表,包含多个主机地址按照实际情况定义 """ dic = {
-
用Python制作检测Linux运行信息的工具的教程
在这篇文章里,我们将会探索如何使用Python语言作为一个工具来检测Linux系统各种运行信息.让我们一起来学习吧. 哪种Python? 当我提到Python时,我一般是指CPython 2(准确来说是2.7).当同样的代码不能在CPython3(3.3)运行时,我们明确地把它指出并给出替代的代码,解释它们之间的不同点.请确保你已经安装了CPython,在终端输入python或者python3你会看到Python提示符出现在你的终端里. 请注意,所有的脚本程序都会以#!/usr/bin/env
-
使用python制作一个为hex文件增加版本号的脚本实例
最近公司一个项目需要用到IAP升级,要求将APP的版本号在hex文件添加,于是尝试用python写一个脚本,运行之后可以自动增加版本号,并且日期都是当天的 import re import time #获取日期的数据及校验和 year = int(time.strftime("%y", time.localtime())) month = int(time.strftime("%m", time.localtime())) date = int(time.strft
-
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
第一点:找Python安装目录 方法一: 方法二: 输入import sys print(sys.path) 化黑线处 第二点:找到安装目录后就可以开始设置环境变量 这里我的安装目录为C:\Program Files\Python36 再字符串的末尾,加一个分号; 然后再输入你安装python的路径,如图所示 一路点确定,确定,直到设置完成 打开命令行,输入python,出现以下提示即为配置成功 最后一点:如何在命令行运行python脚本 前提是已经按上述方法完成设置 打开命令行把脚本文件拖入,
-
bat脚本实例实现只允许运行一个实例(安装程序、创建快捷方式脚本)
复制代码 代码如下: ;我的第一个安装脚本!include "MUI2.nsh"!define DIR "D:\workspace\nsis\files" Name "安装程序"Icon "${DIR}\setup128.ico"OutFile "setup.exe"InstallDir "$PROGRAMFILES\kaserv"RequestExecutionLevel admin
-
使用python写一个自动浏览文章的脚本实例
创建python文件fling.py,代码如下: #!/usr/bin/env monkeyrunner import time from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice device = MonkeyRunner.waitForConnection(5) loop = 0 loop_back = 0 # fling up def scrollUpFling(): device.touch(100, 500,
-
python实现在每个独立进程中运行一个函数的方法
本文实例讲述了python实现在每个独立进程中运行一个函数的方法.分享给大家供大家参考.具体分析如下: 这个简单的函数可以同于在单独的进程中运行另外一个函数,这对于释放内存资源非常有用 #!/usr/bin/env python from __future__ import with_statement import os, cPickle def run_in_separate_process(func, *args, **kwds): pread, pwrite = os.pipe() pi
-
C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
我们开发WinFrom程序,很多时候都希望程序只有一个实例在运行,避免运行多个同样的程序,一是没有意义,二是容易出错. 为了更便于使用,笔者整理了一段自己用的代码,可以判断程序是否在运行,只运行一个实例,而且能实现当程序在运行时,再去双击程序图标,直接呼出已经运行的程序. 下面看代码,只需在程序的入口文件中加如下代码即可: static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] s
随机推荐
- new Date()问题在ie8下面的处理方法
- java 静态代理 动态代理深入学习
- python连接远程ftp服务器并列出目录下文件的方法
- Bootstrap图片轮播效果详解
- 选择器的朋友可以试试这个思路 延迟执行归并选择操作
- 可实现多表单提交的javascript函数
- Android基础教程数据存储之文件存储
- docker上安装使用mysql镜像
- 发现mysql一个用法,比较有用
- HTML5使用DeviceOrientation实现摇一摇功能
- 不用杀毒软件也能让系统百毒不侵的技巧
- java实现MD5加密方法汇总
- 详解Java中用于查找对象哈希码值的hashCode()函数
- 不想让浏览器运行javascript脚本的方法
- 捕获关闭窗口的脚本
- C++实现单链表按k值重新排序的方法
- c#递归生成XML实例
- Python内存管理方式和垃圾回收算法解析
- Spring Boot与前端配合与Idea配置部署操作过程
- python数字图像处理实现直方图与均衡化