function start($nopid = false) { $unix = new unix(); $sock = new sockets(); $unix = new unix(); $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; if (!$nopid) { $pid = $unix->get_pid_from_file($pidfile); if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Already Artica task running PID {$pid} since {$time}mn\n"; } return; } } $pid = redis_pid(); if ($unix->process_exists($pid)) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Already running since {$time}Mn...\n"; } return; } $Enablentopng = $sock->GET_INFO("Enablentopng"); if (!is_numeric($Enablentopng)) { $Enablentopng = 0; } $SquidPerformance = intval($sock->GET_INFO("SquidPerformance")); if ($SquidPerformance > 2) { $Enablentopng = 0; } if ($Enablentopng == 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Disabled ( see Enablentopng )...\n"; } return; } $masterbin = $unix->find_program("redis-server"); $masterbin = $unix->find_program("redis-server"); if (!is_file($masterbin)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} installing redis-server\n"; } $unix->DEBIAN_INSTALL_PACKAGE("redis-server"); $masterbin = $unix->find_program("redis-server"); } if (!is_file($masterbin)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Not installed...\n"; } return; } CheckFilesAndSecurity(); $version = redis_version(); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Starting service v{$version}\n"; } $cmd = "{$masterbin} /etc/redis/redis.conf"; shell_exec($cmd); $c = 1; for ($i = 0; $i < 10; $i++) { sleep(1); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Starting service waiting {$c}/10\n"; } $pid = redis_pid(); if ($unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Success PID {$pid}\n"; } break; } $c++; } $pid = redis_pid(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Failed\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} {$cmd}\n"; } } }
$pubsub->subscribe('control_channel', 'notifications'); // Start processing the pubsup messages. Open a terminal and use redis-cli // to push messages to the channels. Examples: // ./redis-cli PUBLISH notifications "this is a test" // ./redis-cli PUBLISH control_channel quit_loop foreach ($pubsub as $message) { switch ($message->kind) { case 'subscribe': echo "Subscribed to {$message->channel}", PHP_EOL; break; case 'message': if ($message->channel == 'control_channel') { if ($message->payload == 'quit_loop') { echo "Aborting pubsub loop...", PHP_EOL; $pubsub->unsubscribe(); } else { echo "Received an unrecognized command: {$message->payload}.", PHP_EOL; } } else { echo "Received the following message from {$message->channel}:", PHP_EOL, " {$message->payload}", PHP_EOL, PHP_EOL; } break; } } // Always unset the pubsub consumer instance when you are done! The // class destructor will take care of cleanups and prevent protocol // desynchronizations between the client and the server. unset($pubsub); // Say goodbye :-) $version = redis_version($client->info()); echo "Goodbye from Redis {$version}!", PHP_EOL;
function redis_server() { $masterbin = $GLOBALS["CLASS_UNIX"]->find_program("ntopng"); if (!is_file($masterbin)) { return; } $enabled = intval($GLOBALS["CLASS_SOCKETS"]->GET_INFO("Enablentopng")); $SquidPerformance = intval($GLOBALS["CLASS_SOCKETS"]->GET_INFO("SquidPerformance")); if ($SquidPerformance > 2) { $Enablentopng = 0; } $l[] = "[APP_REDIS_SERVER]"; $l[] = "service_name=APP_REDIS_SERVER"; $l[] = "master_version=" . redis_version(); $l[] = "service_cmd=/etc/init.d/redis-server"; $l[] = "service_disabled={$enabled}"; $l[] = "family=proxy"; $l[] = "watchdog_features=1"; if ($enabled == 0) { $master_pid = redis_pid(); if ($GLOBALS["CLASS_UNIX"]->process_exists($master_pid)) { shell_exec2("{$GLOBALS["nohup"]} /etc/init.d/ntopng stop >/dev/null 2>&1 &"); } return implode("\n", $l); return; } $master_pid = redis_pid(); if (!$GLOBALS["CLASS_UNIX"]->process_exists($master_pid)) { if (!$GLOBALS["DISABLE_WATCHDOG"]) { shell_exec2("{$GLOBALS["nohup"]} /etc/init.d/redis-server start >/dev/null 2>&1 &"); } $l[] = "running=0\ninstalled=1"; $l[] = ""; return implode("\n", $l); } $l[] = "running=1"; $l[] = GetMemoriesOf($master_pid); $l[] = ""; return implode("\n", $l); return; }