&1 &"; if (getCurrentPid()) { echo STATUS_OK; } else { echo STATUS_OK; $descriptorspec = array( 0 => array("pipe", "r"), // stdin - канал, из которого дочерний процесс будет читать 1 => array("pipe", "w"), // stdout - канал, в который дочерний процесс будет записывать 2 => array("file", "/tmp/error-output.txt", "a") // stderr - файл для записи ); $process = proc_open($command, $descriptorspec, $pipes); if (1) { } else { echo STATUS_FAIL; } } } function stopServer() { if ($pid = getCurrentPid()) { echo STATUS_OK; clearPid(); $command = "kill " . $pid; $descriptorspec = array( 0 => array("pipe", "r"), // stdin - канал, из которого дочерний процесс будет читать 1 => array("pipe", "w"), // stdout - канал, в который дочерний процесс будет записывать 2 => array("file", "/tmp/error-output.txt", "a") // stderr - файл для записи ); $process = proc_open($command, $descriptorspec, $pipes); //posix_kill($pid, SIGKILL); } else { echo STATUS_OK; } } /** * @return string */ function getPidFileName() { return BASE_PATH . PATH_TMP . FILE_NAME; } /** * @return string|bool */ function getCurrentPid() { $pidFile = getPidFileName(); if (file_exists($pidFile)) { $currentPid = file_get_contents($pidFile); if ($currentPid && strlen($currentPid) > 0) { return $currentPid; } } return false; } function clearPid() { $pidFile = getPidFileName(); if (file_exists($pidFile)) { file_put_contents($pidFile, ''); } } function checkStatus() { if (getCurrentPid()) { echo STATUS_OK; } else { echo STATUS_FAIL; } } function readOutput() { $logFile = BASE_PATH . 'mylog.log'; if (file_exists($logFile)) { $content = file_get_contents($logFile); if ($content && strlen($content) > 0) { echo nl2br($content); } } } ?>