/** * Parses command line arguments * @param Daemon $d */ public static function parseArgs(Daemon $d) { global $argc, $argv; if (php_sapi_name() != 'cli') { return; } if ($argc == 2) { switch ($argv[1]) { case 'start': $d->start(); break; case 'stop': $d->stop(); break; case 'restart': $d->restart(); break; case 'status': $status = $d->status(); echo static::getDaemonName($d) . " is" . ($status ? " " : " not ") . "running\n"; break; default: echo "Unknown command " . $argv[1] . "\n"; exit(2); } exit; } else { echo sprintf("usage: %s start|stop|restart|status", $argv[0]); exit(2); } }
require('/etc/cdrtool/global.inc'); require('cdr_generic.php'); require('rating.php'); require('rating_server.php'); // Init Rating Engine syslog(LOG_NOTICE,"Starting CDRTool Rating Engine..."); $RatingEngineServer = new RatingEngine(); if (!$RatingEngineServer->init_ok) { syslog(LOG_NOTICE,'Error: Cannot start Rating Engine, fix the errors and try again'); exit; } syslog(LOG_NOTICE,"Rating Engine started sucesfully, going to background..."); // Go to the background $d = new Daemon('/var/run/ratingEngine.pid'); $d->start(); $daemon = new socketDaemon(); $server = $daemon->create_server('ratingEngineServer', 'ratingEngineClient', $RatingEngine['socketIP'], $RatingEngine['socketPort']); syslog(LOG_NOTICE,"Rating Engine is now ready to serve network requests"); $daemon->process(); ?>