自動建立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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux中給檔案或者資料夾加鎖,解鎖Linux
- MySQL啟動建立不了pid怎麼辦MySql
- NodeJS+formidable實現檔案上傳加自動重新命名NodeJSORM
- shp檔案轉dwg並建立文字標註
- LIUNUX如何擷取txt檔案中的內容,並建立新檔案UX
- Mac如何建立並匯出檔案列表清單Mac
- Java中建立並寫檔案的5種方式Java
- 前端利用Blob物件建立指定檔案並下載前端物件
- 使用CukeTest建立指令碼自動化備份檔案到網盤指令碼
- 安裝typescript環境並開啟VSCode自動監視編譯ts檔案為js檔案TypeScriptVSCode編譯JS
- Godot遍歷目錄下檔案,並建立按鈕Go
- Laravel 中建立 Zip 壓縮檔案並提供下載Laravel
- 實現一鍵式自動化操作(快速建立 Python 與 Shell 檔案)Python
- linux 程式引數檔案 /proc/pid/cmdline 簡介Linux
- Console 自動生成 Model 檔案
- 隨身碟插入自動讀寫/隨身碟插入自動複製檢測隨身碟的插入,以及進行自動複製檔案並寫入檔案
- Visual Studio Code 被發現新“漏洞”!瘋狂建立垃圾檔案+自動修改使用者檔案
- 總結java中建立並寫檔案的5種方式Java
- 從cmd中匯入.SQL檔案並建立資料庫SQL資料庫
- 自動生成Mybatis的Mapper檔案MyBatisAPP
- 建立.symlnk檔案
- php 建立壓縮包zip,並將指定檔案放入zip中PHP
- Java如何建立臨時檔案並列印File各種屬性Java
- 建立定時任務每5分鐘自動解鎖被鎖定使用者
- 【VMware vSAN】全新vSAN 8 ESA快速儲存架構配置檔案服務並建立檔案共享。架構
- 3dmax自動儲存的檔案在哪裡 3dmax自動存的檔案位置3D
- gulp之自動化靜態資源壓縮合並加版本號
- Protobuf 動態載入 .proto 檔案並操作 Message
- BatchOutput PDF ——批量自動列印PDF檔案BAT
- 自動生成檔案層級樹類
- 頂級檔案自動化工具:Hazel
- BT自動檔案分發系統
- PHP檔案的自動載入(autoloading)PHP
- 使用 PHP 進行建立檔案並在下載後進行刪除PHP
- 小程式封裝wx.request請求並建立介面管理檔案封裝
- Spring Boot入門(一):使用IDEA建立Spring Boot專案並使用yaml配置檔案Spring BootIdeaYAML
- oracle 控制檔案及引數檔案何時自動備份Oracle
- sock鎖檔案導致的MySQL啟動失敗MySql
- VBA建立文字檔案、讀寫文字檔案