自動建立pid檔案,並加鎖
點選(此處)摺疊或開啟
-
#!/usr/bin/env python
-
#coding=utf-8
-
import sys
-
import os
-
import re
-
import traceback
-
import fcntl
-
-
class PidFile():
-
def __init__(self, file = None):
-
if file == None:
-
argv0_list = sys.argv[0].split("\\")
-
scname = argv0_list[len(argv0_list) - 1]
-
if re.search(".py$", scname):
-
scname = scname[0:-3]
-
self.file = "/tmp/%s.pid" % (scname)
-
else:
-
self.file = file
-
self.pidfile = None
-
-
def _create(self, file):
-
f = open(file, "w")
-
pid = os.getpid()
-
f.write("%s" % (pid))
-
f.close()
-
-
def __enter__(self):
-
if not os.path.isfile(self.file):
-
self._create(self.file)
-
self.pidfile = open(self.file, 'a+')
-
try:
-
fcntl.flock(self.pidfile.fileno(), fcntl.LOCK_EX|fcntl.LOCK_NB)
-
return True
-
except:
-
traceback.print_exc()
-
fpid = open(self.file, "r").read()
-
raise SystemExit("Process id %s Already running , pid to %s " % (fpid, self.file))
-
return False
-
-
def __exit__(self, *args):
-
try:
-
self.pidfile.close()
-
except :
-
pass
-
os.remove(self.file)
-
-
-
if __name__ == "__main__":
-
# use
-
with PidFile() as t:
-
print "lock file %s" % (file)
-
time.sleep(10)
- exit(0)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26250550/viewspace-1816377/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java判斷檔案是否存在並建立檔案Java
- mysql之pid檔案MySql
- 檔案加鎖王 8.1演算法分析演算法
- 建立自啟動檔案指令碼的例項指令碼
- Linux中給檔案或者資料夾加鎖,解鎖Linux
- linux建立賬戶並自動生成主目錄和主目錄下的檔案Linux
- ORACLE 建立DBLINK 自動加域名解決方案Oracle
- FTP自動下載並解壓縮檔案指令碼FTP指令碼
- MySQL啟動建立不了pid怎麼辦MySql
- 建立並運用使用者概要檔案
- Nagios之批量修改nrpe配置檔案並自動重啟iOS
- NodeJS+formidable實現檔案上傳加自動重新命名NodeJSORM
- MySQL資料庫的套接字檔案和pid檔案MySql資料庫
- LIUNUX如何擷取txt檔案中的內容,並建立新檔案UX
- 前端利用Blob物件建立指定檔案並下載前端物件
- shp檔案轉dwg並建立文字標註
- Java中建立並寫檔案的5種方式Java
- Mac如何建立並匯出檔案列表清單Mac
- 使用shell指令碼build並建立ipa檔案(轉)指令碼UI
- 使用CukeTest建立指令碼自動化備份檔案到網盤指令碼
- 檔案鎖
- Win10系統如何實現拖動檔案自動建立資料夾Win10
- 隨身碟插入自動讀寫/隨身碟插入自動複製檢測隨身碟的插入,以及進行自動複製檔案並寫入檔案
- Laravel 中建立 Zip 壓縮檔案並提供下載Laravel
- LINUX多執行緒讀寫同一個檔案 加鎖Linux執行緒
- InnoDB事務鎖之行鎖-insert加鎖-隱式鎖加鎖原理
- 安裝typescript環境並開啟VSCode自動監視編譯ts檔案為js檔案TypeScriptVSCode編譯JS
- gulp之自動化靜態資源壓縮合並加版本號
- ssh自動登陸和scp自動拷貝檔案
- 實現一鍵式自動化操作(快速建立 Python 與 Shell 檔案)Python
- PDF檔案自動重新命名
- 利用ftp自動上傳檔案FTP
- 使用ftp自動傳輸檔案FTP
- 總結java中建立並寫檔案的5種方式Java
- 從cmd中匯入.SQL檔案並建立資料庫SQL資料庫
- Linux建立檔案系統並掛載的方法 -----ddLinux
- sqlplus與shell自動提取資料檔案的邏輯卷lv並開啟自動擴充套件SQL套件
- 監控空間並自動刪除超出空間的最老的檔案