2013-03-11 70 views
4

我正在开发一个使用python和memcached的Web应用程序。如何检查memcached是否正在运行,如果不是从python启动它?

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

我想如果memcached是不是已经运行像

if check_memcached(): 
    start_memcached(); 

check_memcached()函数应该返回true。有人知道如何做到这一点?

回答

5

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

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

如果你正在运行ubuntu,“服务memcached状态”会给你结果。 – 2013-10-30 09:32:27

相关问题