我正在使用 python 和 memcached 开发一个网络应用程序。
首先,我想从我的 python 程序启动 memcached,如果我是对的,subprocess.Popen(["memcached"]);
会执行此操作。真正困扰我的是如何检查 memcached 是否已经在后台运行。
我想要类似的东西
if check_memcached():
start_memcached();
如果 memcached 尚未运行,check_memcached()
函数应返回 true。有人知道如何做到这一点吗?
最佳答案
检查的最佳方式可能取决于您的平台。以下是您可以尝试的一些方法:
- 尝试连接到内存缓存服务器。如果连接失败,则假定服务器未运行。
- 如果您希望 memcached 在本地运行,请查找 PID 文件。在 Debian 上,它通常位于
/var/run/memcached.pid
并包含正在运行的 memcached 守护进程的进程 ID。为确保您可以读取文件中包含的 PID 并验证具有此 PID 的进程是否仍在运行。 - 使用
subprocess
模块运行一个命令,可以直接检查本地运行的守护进程。例如。使用subprocess
运行命令pidof memcached
并检查返回码。
关于python - 如何检查 memcached 是否正在运行,如果不是从 python 启动它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15332051/