public static function createTask($rule, $user = null, $id = null, $running_user = null) { /*{{{*/ $task = false; try { $rule = trim($rule); $task = new CronTask($rule); $task->user = $user; $task->id = $id; if ($running_user) { $task->running_user = $running_user; } } catch (CronException $ce) { CronLogger::err($ce->getMessage() . "\n" . $ce->getTraceAsString()); $task = false; } return $task; }
private function daemonize() { /*{{{*/ global $daemon; $daemon = true; $pid = pcntl_fork(); if ($pid) { exit(0); } else { if ($pid < 0) { CronLogger::err("Fork failed\n"); exit(1); } } chdir(dirname(__FILE__)); $sid = posix_setsid(); if (!$sid) { CronLogger::err("Set sid failed\n"); exit(1); } if (!$this->createPidFile()) { return false; } fclose(STDIN); fclose(STDOUT); fclose(STDERR); global $STDOUT; global $STDERR; $STDOUT = fopen('/dev/null', 'w'); $STDERR = $STDOUT; return true; }