python如何避免指令碼重複執行

時間 2021-06-06 11:23:32

1樓:火眼狻猊

這種需求很常見,最常使用的技術就是互斥鎖。

現成的例子可以參考 Linux 系統的 /run 目錄下的 *.pid 檔案。

Windows 系統也是一樣,存放在固定的路徑就行。

這裡有幾個注意點:

PID 鎖檔案的路徑最好是絕對路徑,如 Linux 下的 /run/service.pid,Windows 的系統盤下面,一般可以寫在配置檔案裡(配置檔案有預設的,也可以指定)。如果只是當前目錄下的相對檔案,如果不小心複製到另乙個目錄就沒用了。

複雜的場景下需要考慮多使用者許可權問題,例如鎖檔案許可權,服務執行使用者等等,一般是比較成熟後會考慮,如果 Windows 完全是管理員操作可以忽略。

更健壯的程式還需要考慮併發搶占鎖的問題。

2樓:

可以嘗試建立乙個命名的互斥物件,程式一開啟就嘗試建立,如果已經存在,則建立失敗,程式退出,如果成功,繼續執行

windows原生api是CreateMutex,不知道linux是什麼,應該也有類似的

3樓:彭世瑜

可以在目錄下,建乙個檔案比如 start.txt 來記錄程式是否執行具體步驟:

程式啟動的時候,檢查檔案`start.txt` 是否存在,如果不存在,新建檔案,繼續執行程式

如果存在,則結束執行

運維崗真有人用Python指令碼運維嗎?

嘻嘻 一直以來,IDC機房的運維工作都是非常重要的,它影響著業務的正常執行,隨著資訊科技的發展,自動化自動化運維是資料中心 網際網路企業高度重視的方向,資料中心的從純手工 重複地進行軟體部署運維,經歷編寫指令碼運維,再到借助第三方工具高效 方便地部署和運維,在轉變的過程中已大大提公升了運維的效率和效...

乙個python指令碼如何交付給別人使用,對方電腦上未安裝python環境?

於若桐 都什麼年代了,還打包 用 flask 做成服務,部署到服務上,開啟乙個埠讓其他人用。再不濟去租個公網 IP 將埠穿透到公網 利用 ssh R 如果有閒心,可以畫個 vue 前端,用 vuetify 現成的 UI 元件就行。 王超逸 樓上正解 依賴簡單就pyinstaller,依賴複雜就把Py...

在python列表中出現重複元素,如何找到這個重複元素的所有的後面那個元素?

睡到人間煮飯時 a I am I is he she I her b fori,jinenumerate a enumerate可以提取列表中元素和元素的下標 L I am I is he she I her R L i 1 fori value inenumerate L 1 ifvalue I ...