如何检查memcached是否正在运行,如果不是从python启动它?

时间:2013-03-11 05:54:26

标签: python memcached

我正在使用python和memcached开发一个Web应用程序。

首先,我想从我的python程序启动memcached,如果我是对的subprocess.Popen(["memcached"]);将会这样做。真正困扰我的是如何检查memcached是否已经在后台运行。

我想要像

这样的东西
if check_memcached():
    start_memcached();

如果memcached尚未运行,check_memcached()函数应返回true。有人知道怎么做吗?

1 个答案:

答案 0 :(得分:5)

检查的最佳方式可能取决于您的平台。以下是您可以尝试的一些方法:

  • 尝试连接到memcached服务器。如果连接失败,则假定服务器未运行。
  • 如果您希望memcached在本地运行,请查找PID文件。在Debian上,它通常位于/var/run/memcached.pid并包含正在运行的memcached守护程序的进程ID。为了更加确定,您可以读取文件中包含的PID,并验证具有此PID的进程是否仍在运行。
  • 使用subprocess模块运行可以直接检查本地运行的守护程序的命令。例如。使用pidof memcached运行命令subprocess并检查返回代码。