public function getProcessIsRunning($hostDetails, $processName)
{
// what are we doing?
$log = usingLog()->startAction("is process '{$processName}' running on host '{$hostDetails->hostId}'?");
// SSH in and have a look
$command = "ps -ef | grep '{$processName}'";
$result = $this->runCommand($hostDetails, $command);
// what did we find?
if ($result->didCommandFail() || empty($result->output)) {
$log->endAction("not running");
return false;
}
// whittle down the output
$lines = explode("\n", $result->output);
$lines = FilterColumns::from($lines, "7", ' ');
$lines = FilterForMatchingRegex::against($lines, "/^{$processName}\$/");
if (empty($lines)) {
$log->endAction("not running");
}
// success
$log->endAction("is running");
return true;
}