Commit c8ef4a1b by Ben Patterson

Bok-choy: check if mysql is running, even if it's not a daemon.

The impetus is integration with test environments, where mysql is not configured
as a service.
parent 437a3bf9
...@@ -5,6 +5,7 @@ import sys ...@@ -5,6 +5,7 @@ import sys
import os import os
import time import time
import httplib import httplib
import subprocess
from paver.easy import sh from paver.easy import sh
from pavelib.utils.envs import Env from pavelib.utils.envs import Env
from pavelib.utils.process import run_background_process from pavelib.utils.process import run_background_process
...@@ -125,10 +126,12 @@ def is_mysql_running(): ...@@ -125,10 +126,12 @@ def is_mysql_running():
""" """
Returns True if mysql is running, False otherwise. Returns True if mysql is running, False otherwise.
""" """
# We use the MySQL CLI client and capture its stderr # We need to check whether or not mysql is running as a process
# If the client cannot connect successfully, stderr will be non-empty # even if it is not daemonized.
output = os.popen('status mysql 2>&1').read() with open(os.devnull, 'w') as DEVNULL:
return output.startswith("mysql start/running, process") #pgrep returns the PID, which we send to /dev/null
returncode = subprocess.call("pgrep mysqld", stdout=DEVNULL, shell=True)
return returncode == 0
def clear_mongo(): def clear_mongo():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment