Python實現指令碼鎖功能(同時只能執行一個指令碼),python指令碼

來源:互聯網
上載者:User

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實現指令碼鎖功能(同時只能執行一個指令碼),希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對幫客之家網站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.