public function actionCreate() { $href = ''; $name = ''; $command = ''; if (isset($_POST['DevSettingsProcessManagerPopUp'])) { $cmd = $_POST['DevSettingsProcessManagerPopUp']; $file = end(explode("=", $_POST['processFile'])); $prefix = Helper::explodeFirst("-", Helper::camelToSnake(Helper::explodeLast(".", $file))); //Creating unique id for setting $id = ProcessHelper::createSettingsId($cmd['processName']); Setting::set("process." . $id . ".name", $cmd['processName']); Setting::set("process." . $id . ".command", $prefix . " " . $cmd['processCommand']); Setting::set("process." . $id . ".period", $cmd['processPeriod']); Setting::set("process." . $id . ".periodType", $cmd['processPeriodType']); Setting::set("process." . $id . ".periodCount", ProcessHelper::periodConverter($cmd['processPeriod'], $cmd['processPeriodType'])); // Default process value Setting::set("process." . $id . ".lastRun", null); Setting::set("process." . $id . ".isStarted", false); Setting::set("process." . $id . ".pid", null); Setting::set("process." . $id . ".file", $file); Setting::set("process." . $id . ".runOnce", false); $href = Yii::app()->createUrl("dev/processManager/update", ["id" => $id, "active" => $file]); } $this->renderForm('settings.DevSettingsProcessManagerPopUp', null, ['href' => $href], ['layout' => '//layouts/blank']); }
public static function run($name, $command, $runOnce = TRUE) { if (!ProcessHelper::isPMRunning()) { return false; } $pid = []; $process = ProcessHelper::getProcessCommand(); $id = ProcessHelper::createSettingsId($name); chdir(Yii::getPathOfAlias('application')); exec($process . ' run ' . $command, $pid); if (!empty($pid)) { # Default value of Processes Setting::set("process." . $id . ".name", $name); Setting::set("process." . $id . ".command", $command); Setting::set("process." . $id . ".period", null); Setting::set("process." . $id . ".periodType", null); Setting::set("process." . $id . ".periodCount", null); Setting::set("process." . $id . ".lastRun", time()); Setting::set("process." . $id . ".isStarted", true); Setting::set("process." . $id . ".pid", $pid[0]); Setting::set("process." . $id . ".file", null); Setting::set("process." . $id . ".runOnce", $runOnce); return $pid[0]; } else { return false; } }