Python之pid模块使用

pid文件主要用来保存当前程序的PID,并将pid写入到文件中, 在程序执行期间,将锁定这个文件,常用来防止程序重复启动

安装

1
pip install pip

主要方法

  • PidFile(): 创建pid文件,可设置pid文件存储目录,文件名

代码测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# encoding=utf-8
# pip install pid

import logging
from pid import PidFile
import time

logging.basicConfig(level = logging.DEBUG, format='%(levelname)s - %(message)s')

logger = logging.getLogger(__name__)

# 执行完成pid文件将会自动删除
with PidFile(piddir='./tmp/',pidname='pidtest'):
time.sleep(30)

在程序没有执行完成,再次运行这个程序时,会出现报错:

1
2
3
4
5
6
7
8
Traceback (most recent call last):
File "pid.test.py", line 13, in <module>
with PidFile(piddir='./tmp/',pidname='pidtest'):
File "/usr/local/lib/python2.7/site-packages/pid/__init__.py", line 217, in __enter__
self.create()
File "/usr/local/lib/python2.7/site-packages/pid/__init__.py", line 178, in create
raise PidFileAlreadyLockedError(exc)
pid.PidFileAlreadyLockedError: [Errno 35] Resource temporarily unavailable
有用就打赏一下作者吧!