4

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

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

我想要类似的东西

if check_memcached():
    start_memcached();

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

4

1 回答 1

5

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

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