function startServer() { if ($this->serverRunning()) { return PEAR::raiseError("Server is up!"); } global $conf; chdir(NWNAdmin::getServerRoot()); $settings =& $this->_settingsbackend->getSettings(); unset($settings['module']); $settingString = ''; foreach ($settings as $key => $val) { if (!is_null($val) && $val !== '') { $settingString .= sprintf(" -%s '%s' ", $key, escapeshellcmd($val)); } } shell_exec(NWNAdmin::getServerExecutable() . $settingString . ' > ' . $this->_getLog() . ' 2>&1 < ' . $this->_checkFifo() . ' &'); $this->_settingsbackend->setData($settings); return true; }