如何通过Python检查memcached是否在运行并在未运行时启动它?

4 投票
1 回答
5553 浏览
提问于 2025-04-17 18:39

我正在用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,然后检查返回的结果。

撰写回答