如何通过Python检查memcached是否在运行并在未运行时启动它?
我正在用Python和memcached开发一个网页应用。
首先,我想从我的Python程序启动memcached。如果我没记错的话,subprocess.Popen(["memcached"]);
可以做到这一点。不过,我最困扰的是如何检查memcached是否已经在后台运行。
我想要一个类似这样的东西:
if check_memcached():
start_memcached();
这个check_memcached()
函数应该在memcached没有运行的时候返回真。有没有人知道该怎么做?
1 个回答
5
检查的方法可能会根据你使用的平台有所不同。以下是一些你可以尝试的方法:
- 尝试连接到memcached服务器。如果连接失败,可以认为服务器没有在运行。
- 如果你希望memcached在本地运行,可以查找一个PID文件。在Debian系统中,这个文件通常位于
/var/run/memcached.pid
,里面记录了正在运行的memcached程序的进程ID。为了更加确认,你可以读取这个文件中的PID,并检查一下这个PID对应的进程是否还在运行。 - 使用
subprocess
模块来运行一个命令,直接检查本地是否有正在运行的守护进程。例如,可以用subprocess
运行命令pidof memcached
,然后检查返回的结果。