python 利用文件鎖單例執(zhí)行腳本的方法
你可能會(huì)遇到這樣的要求,一個(gè)腳本,只允許有一個(gè)實(shí)例。
在python中,為了實(shí)現(xiàn)這個(gè)需求,可以引入fcntl模塊對(duì)文件加一個(gè)排他鎖,這樣一來(lái),先啟動(dòng)的實(shí)例擁有了文件鎖,而后啟動(dòng)的實(shí)例則因無(wú)法獲取鎖而退出
#coding=utf-8 import fcntl, sys, time, os pidfile = 0 def ApplicationInstance(): global pidfile pidfile = open(os.path.realpath(__file__), "r") try: fcntl.flock(pidfile, fcntl.LOCK_EX | fcntl.LOCK_NB) #創(chuàng)建一個(gè)排他鎖,并且所被鎖住其他進(jìn)程不會(huì)阻塞 except: print "another instance is running..." sys.exit(1) if __name__ == "__main__": ApplicationInstance() while True: print 'running...' time.sleep(1)
需要注意的是,fcntl模塊只能在linux環(huán)境下使用,windows上是沒(méi)有的,這再次警告我們,擁抱linux,遠(yuǎn)離windows
以上這篇python 利用文件鎖單例執(zhí)行腳本的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3簡(jiǎn)單實(shí)例計(jì)算同花的概率代碼
這篇文章主要介紹了Python3簡(jiǎn)單實(shí)例計(jì)算同花的概率代碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù)
這篇文章主要介紹了基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Python實(shí)現(xiàn)快速提取PDF文檔中的圖片
提取PDF文檔中的圖片是一項(xiàng)常見(jiàn)的任務(wù),本文將介紹如何使用PyPDF2和pdfminer.six這兩個(gè)庫(kù)來(lái)提取PDF文檔中的圖片,感興趣的可以了解一下2023-06-06用Python將Excel數(shù)據(jù)導(dǎo)入到SQL Server的例子
今天小編就為大家分享一篇用Python將Excel數(shù)據(jù)導(dǎo)入到SQL Server的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08python opencv設(shè)置攝像頭分辨率以及各個(gè)參數(shù)的方法
下面小編就為大家分享一篇python opencv設(shè)置攝像頭分辨率以及各個(gè)參數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python文件讀寫(xiě)處理日常任務(wù)終極工具實(shí)例
Python文件的讀寫(xiě)操作時(shí),有很多需要考慮的細(xì)節(jié),這包括文件打開(kāi)方式、讀取和寫(xiě)入數(shù)據(jù)的方法、異常處理等,在本文中,將深入探討Python中的文件操作,旨在提供全面的指南,幫你充分了解Python文件的讀寫(xiě)2023-11-11淺談keras中的目標(biāo)函數(shù)和優(yōu)化函數(shù)MSE用法
這篇文章主要介紹了淺談keras中的目標(biāo)函數(shù)和優(yōu)化函數(shù)MSE用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06