/** * select all running scripts from scriptsStatuses Table and check PID files. * * @return array * @access public */ function getRunningScript() { //check temporary dir for orchan PID files //get temporary path $tempPath = CMS_file::getTmpPath(); //computes the directory to put files in $tempDir = @dir($tempPath); if (!is_object($tempDir)) { return array(); } //script application label $scriptAppLbl = processManager::getAppCode(); //Automatic list of directory content //Displayed in alphabetical order (noted on Windows platforms) $PIDFiles = array(); while (false !== ($file = $tempDir->read())) { if (stripos($file, $scriptAppLbl) !== false && io::strpos($file, ".ok") === false) { $PIDFiles[] = $file; } } //check the table $sql = "\n\t\t\tselect\n\t\t\t\t*\n\t\t\tfrom\n\t\t\t\tscriptsStatuses\n\t\t\torder by launchDate_ss\n\t\t\t"; $q = new CMS_query($sql); $scripts = array(); $modules = array(); while ($data = $q->getArray()) { $PIDFileStatus = 0; if (array_search($data["scriptName_ss"], $PIDFiles) !== false) { $process = new processManager($data["scriptName_ss"]); if (@is_file($process->getPIDFilePath() . ".ok")) { $PIDFileStatus = 3; } else { $PIDFileStatus = 1; } $key = array_search($data["scriptName_ss"], $PIDFiles); unset($PIDFiles[$key]); } $scriptTitle = ''; //instanciate module if not exists if (isset($data['module_ss']) && $data['module_ss'] != self::MASTER_SCRIPT_NAME) { if (!isset($modules[$data['module_ss']])) { $modules[$data['module_ss']] = CMS_modulesCatalog::getByCodename($data['module_ss']); } if (is_object($modules[$data['module_ss']])) { $scriptTitle = $modules[$data['module_ss']]->scriptInfo(unserialize($data['parameters_ss'])); } else { $scriptTitle = 'Error : script module not set'; } } elseif ($data['module_ss'] == self::MASTER_SCRIPT_NAME) { $scriptTitle = self::MASTER_SCRIPT_NAME; } else { $scriptTitle = 'Error : script module not set'; } $script = array("Title" => $scriptTitle, "Date" => $data["launchDate_ss"], "PIDFile" => $PIDFileStatus); $scripts[] = $script; } //add orphan PIDFiles to the report foreach ($PIDFiles as $anOrphanPIDFile) { $script = array("Title" => str_replace('_', ' ', str_replace('bgscript_', '', $anOrphanPIDFile)), "Date" => '', "PIDFile" => '2'); $scripts[] = $script; } return $scripts; }