Python實(shí)現(xiàn)腳本鎖功能(同時(shí)只能執(zhí)行一個(gè)腳本)
1. 文件鎖
腳本啟動(dòng)前檢查特定文件是否存在,不存在就啟動(dòng)并新建文件,腳本結(jié)束后刪掉特定文件。
通過文件的判斷來確定腳本是否正在執(zhí)行。
方法實(shí)現(xiàn)也比較簡單,這里以python腳本為例
#coding=utf-8
#
# 文件鎖腳本測試
#
import os #操作系統(tǒng)
import time
lockfilepath = "/opt/lock.txt";
#判斷文件是否存在
if os.path.exists(lockfilepath):
#文件存在,說明腳本正在執(zhí)行
print("腳本正在執(zhí)行")
else:
#文件不存在,創(chuàng)建文件,并執(zhí)行任務(wù)。
lockfile = open(lockfilepath,"w+");
print ("文件鎖 任務(wù)模擬sleep 10s");
time.sleep(10);
print ("任務(wù)模擬結(jié)束 sleep over ");
#刪除文件
os.remove(lockfilepath);
文件鎖測試結(jié)果


2.端口占用
使用socket模塊,在腳本執(zhí)行時(shí),給系統(tǒng)中增加一個(gè)端口,在腳本執(zhí)行完后釋放。
腳本執(zhí)行時(shí),去創(chuàng)建這個(gè)端口,如果腳本還在執(zhí)行,端口會(huì)創(chuàng)建失敗,提示腳本還在執(zhí)行。
實(shí)現(xiàn)方法也比較簡單:Python腳本
#coding=utf-8
import time
import socket
suo = 1
try:
global hyf_suo
hyf_suo = socket.socket()
addr = ('',98889)
hyf_suo.bind(addr);
suo = 1;
except:
suo = 2;
print('already has an instance')
if(suo==1):
print ("鎖住 sleep ");
time.sleep(10);
print ("sleep over ");
else:
print("已經(jīng)加鎖了");
端口鎖測試結(jié)果


結(jié)論
以上兩種方法都能實(shí)現(xiàn)腳本鎖的功能,個(gè)人更傾向于使用第二種方法。端口鎖的方法。
以上所述是小編給大家介紹的Python實(shí)現(xiàn)腳本鎖功能(同時(shí)只能執(zhí)行一個(gè)腳本),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
11個(gè)并不被常用但對開發(fā)非常有幫助的Python庫
這篇文章主要介紹了11個(gè)并不被常用但對開發(fā)非常有幫助的Python庫,這些庫大都被放在Github上開源、并且經(jīng)過一段時(shí)間的編寫和維護(hù),對Python開發(fā)有一定的幫助,需要的朋友可以參考下2015-03-03
Python+OpenCV繪制多instance的Mask圖像
Mask圖像中,不同值表示不同的實(shí)例(instance)。本文將詳細(xì)為大家講講如何利用OpenCV繪制多instance的Mask圖像,感興趣的可以學(xué)習(xí)一下2022-06-06
Pytorch自己加載單通道圖片用作數(shù)據(jù)集訓(xùn)練的實(shí)例
今天小編就為大家分享一篇Pytorch自己加載單通道圖片用作數(shù)據(jù)集訓(xùn)練的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python調(diào)用函數(shù)、類和文件操作簡單實(shí)例總結(jié)
這篇文章主要介紹了python調(diào)用函數(shù)、類和文件操作,結(jié)合簡單實(shí)例形式總結(jié)分析了Python調(diào)用函數(shù)、類和文件操作的各種常見操作技巧,需要的朋友可以參考下2019-11-11
python中實(shí)現(xiàn)php的var_dump函數(shù)功能
這篇文章主要介紹了python中實(shí)現(xiàn)php的var_dump函數(shù)功能,var_dump函數(shù)在PHP中調(diào)試時(shí)非常實(shí)用,本文介紹在Python中實(shí)現(xiàn)這個(gè)函數(shù),需要的朋友可以參考下2015-01-01

