Python實現指令碼鎖功能(同時只能執行一個指令碼),python指令碼
1. 檔案鎖
指令碼啟動前檢查特定檔案是否存在,不存在就啟動並建立檔案,指令碼結束後刪掉特定檔案。
通過檔案的判斷來確定指令碼是否正在執行。
方法實現也比較簡單,這裡以python指令碼為例
#coding=utf-8 # # 檔案鎖指令碼測試 # import os #作業系統 import time lockfilepath = "/opt/lock.txt"; #判斷檔案是否存在 if os.path.exists(lockfilepath): #檔案存在,說明指令碼正在執行 print("指令碼正在執行") else: #檔案不存在,建立檔案,並執行任務。 lockfile = open(lockfilepath,"w+"); print ("檔案鎖 任務類比sleep 10s"); time.sleep(10); print ("任務類比結束 sleep over "); #刪除檔案 os.remove(lockfilepath);
檔案鎖測試結果
2.連接埠佔用
使用socket模組,在指令碼執行時,給系統中增加一個連接埠,在指令碼執行完後釋放。
指令碼執行時,去建立這個連接埠,如果指令碼還在執行,連接埠會建立失敗,提示指令碼還在執行。
實現方法也比較簡單: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("已經加鎖了");
連接埠鎖測試結果
結論
以上兩種方法都能實現指令碼鎖的功能,個人更傾向於使用第二種方法。連接埠鎖的方法。
以上所述是小編給大家介紹的Python實現指令碼鎖功能(同時只能執行一個指令碼),希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對幫客之家網站的支援!