function controlServicio($sServicio, $sAccion) { $oPalo = new paloSantoSysInfo(); $flag = 0; $acciones = array('processcontrol_start' => 'start', 'processcontrol_restart' => 'restart', 'processcontrol_stop' => 'stop', 'processcontrol_activate' => 'on', 'processcontrol_deactivate' => 'off'); $servicios = array('Asterisk' => 'asterisk', 'OpenFire' => 'openfire', 'Hylafax' => 'hylafax', 'Postfix' => 'postfix', 'MySQL' => 'mysqld', 'Apache' => 'httpd', 'Dialer' => 'elastixdialer'); if (!in_array($sServicio, array_keys($servicios))) { return FALSE; } if (!in_array($sAccion, array_keys($acciones))) { return FALSE; } $output = $retval = NULL; if ($sAccion == "processcontrol_deactivate" || $sAccion == "processcontrol_activate") { // exec('sudo -u root chkconfig --level 3 '.escapeshellarg($servicios[$sServicio]).' '.escapeshellarg($acciones[$sAccion]),$output,$retval); exec('/usr/bin/elastix-helper rchkconfig --level 3 ' . escapeshellarg($servicios[$sServicio]) . ' ' . escapeshellarg($acciones[$sAccion]), $output, $retval); $arrServices = $oPalo->getStatusServices(); if ($arrServices[$sServicio]["status_service"] == "Shutdown" && $sAccion == "processcontrol_activate" || $arrServices[$sServicio]["status_service"] == "OK" && $sAccion == "processcontrol_deactivate") { $sAccion = $sAccion == "processcontrol_deactivate" ? 'processcontrol_stop' : 'processcontrol_start'; } else { $flag = 1; } } if ($flag != 1) { exec('sudo -u root service generic-cloexec ' . $servicios[$sServicio] . ' ' . $acciones[$sAccion] . ' 1>/dev/null 2>/dev/null'); } return TRUE; }
function getDataApplet_ProcessesStatus() { $oPalo = new paloSantoSysInfo(); $arrServices = $oPalo->getStatusServices(); $sMsgStart = _tr('Start process'); $sMsgStop = _tr('Stop process'); $sMsgRestart = _tr('Restart process'); $sMsgActivate = _tr('Enable process'); $sMsgDeactivate = _tr('Disable process'); $sListaServicios = <<<PLANTILLA_POSICIONABLE <div class="neo-applet-processes-menu"> <input type="hidden" id="neo_applet_selected_process" value="" /> <div id="neo-applet-processes-controles"> <input type="button" class="neo_applet_process" name="processcontrol_stop" id="neo_applet_process_stop" value="{$sMsgStop}" /> <input type="button" class="neo_applet_process" name="processcontrol_start" id="neo_applet_process_start" value="{$sMsgStart}" /> <input type="button" class="neo_applet_process" name="processcontrol_restart" id="neo_applet_process_restart" value="{$sMsgRestart}" /> <input type="button" class="neo_applet_process" name="processcontrol_activate" id="neo_applet_process_activate" value="{$sMsgActivate}" /> <input type="button" class="neo_applet_process" name="processcontrol_deactivate" id="neo_applet_process_deactivate" value="{$sMsgDeactivate}" /> </div> <img id="neo-applet-processes-processing" src="modules/{$this->module_name}/images/loading.gif" style="display: none;" alt="" /> </div> PLANTILLA_POSICIONABLE; $listaIconos = array('Asterisk' => 'icon_pbx.png', 'OpenFire' => 'icon_im.png', 'Hylafax' => 'icon_fax.png', 'Postfix' => 'icon_email.png', 'MySQL' => 'icon_db.png', 'Apache' => 'icon_www.png', 'Dialer' => 'icon_headphones.png'); $sIconoDesconocido = 'system.png'; $sPlantilla = <<<PLANTILLA_PROCESS_ROW <div class="neo-applet-processes-row"> <div class="neo-applet-processes-row-icon"><img src="modules/dashboard/images/%s" width="32" height="28" alt="%s" /></div> <div class="neo-applet-processes-row-name">%s</div> <div class="neo-applet-processes-row-menu"> <input type="hidden" name="key-servicio" id="key-servicio" value="%s" /> <input type="hidden" name="status-servicio" id="status-servicio" value="%s" /> <input type="hidden" name="activate-process" id="activate-process" value="%s" /> <img src="modules/dashboard/images/%s" style="cursor:%s;" width="15" height="15" alt="menu" /> </div> <div class="neo-applet-processes-row-status-msg" style="color: %s">%s</div> <div class="neo-applet-processes-row-status-icon"></div></div> PLANTILLA_PROCESS_ROW; // onclick="neoAppletProcesses_manejarMenu(this, '%s', '%s');"> foreach ($arrServices as $sServicio => $infoServicio) { switch ($infoServicio['status_service']) { case 'OK': $sDescStatus = _tr('Running'); $sColorStatus = '#006600'; break; case 'Shutdown': $sDescStatus = _tr('Not running'); $sColorStatus = '#880000'; break; default: $sDescStatus = _tr('Not installed'); $sColorStatus = '#000088'; break; } $sListaServicios .= sprintf($sPlantilla, isset($listaIconos[$sServicio]) ? $listaIconos[$sServicio] : $sIconoDesconocido, $sServicio, _tr($infoServicio['name_service']), $sServicio, $infoServicio['status_service'], $infoServicio['activate'], in_array($infoServicio['status_service'], array('OK', 'Shutdown')) ? 'icon_arrowdown.png' : 'icon_arrowdown-disabled.png', in_array($infoServicio['status_service'], array('OK', 'Shutdown')) ? 'pointer' : '', $sColorStatus, strtoupper($sDescStatus)); } return $sListaServicios; }