PIDFile上下文管理器。
项目描述
Python上下文管理器,用于管理pid文件。示例用法
import pidfile
import time
print('Starting process')
try:
with pidfile.PIDFile("/var/run/example.pid"):
print('Process started')
time.sleep(30)
except pidfile.AlreadyRunningError:
print('Already running.')
print('Exiting')
上下文管理器将负责验证pid文件的存在,检查其pid是否存活,检查命令行(应该是<something>/<python name>),如果所有条件都满足,则引发pidfile.AlreadyRunningError异常。
PIDFile()默认为pidfile作为文件名,但也可以指定其他名称,例如PIDFile(‘foobar.pid’)。
内部机制
该库的算法非常简单,在启动时创建一个文件,然后检查没有其他程序实例正在运行,并将当前进程ID写入该文件。
检查工作如下
如果文件不存在,则检查通过。
将标识符写入文件,读取并检查是否存在使用该标识符运行的进程,并且具有相同的命令行。