2013-03-11 96 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

相關問題