function start($aspid = false) { $unix = new unix(); $sock = new sockets(); $users = new usersMenus(); $Masterbin = "/usr/local/ArticaStats/bin/postgres"; if (!is_file($Masterbin)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, arpd not installed\n"; } return; } if (!$aspid) { $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $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["TITLENAME"]} Already Artica task running PID {$pid} since {$time}mn\n"; } return; } @file_put_contents($pidfile, getmypid()); } $pid = PID_NUM(); if ($unix->MEM_TOTAL_INSTALLEE() < 624288) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} not enough memory\n"; } if ($unix->process_exists($pid)) { stop(); } build_progress_restart("{starting} {failed} no memory", 110); return; } if ($unix->process_exists($pid)) { $timepid = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Service already started {$pid} since {$timepid}Mn...\n"; } build_progress_restart("{starting} {success}", 30); return true; } $php5 = $unix->LOCATE_PHP5_BIN(); $sysctl = $unix->find_program("sysctl"); $echo = $unix->find_program("echo"); $nohup = $unix->find_program("nohup"); $su = $unix->find_program("su"); $rm = $unix->find_program("rm"); $SquidPerformance = intval($sock->GET_INFO("SquidPerformance")); $EnableInfluxDB = intval($sock->GET_INFO("EnableInfluxDB")); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} EnableInfluxDB: {$EnableInfluxDB}\n"; } $InfluxUseRemote = intval($sock->GET_INFO("InfluxUseRemote")); if ($users->POSTFIX_INSTALLED) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Postfix installed: True\n"; } } if ($InfluxUseRemote == 1) { $EnableInfluxDB = 0; } $FreeZePostGres = intval(@file_get_contents("/etc/artica-postfix/settings/Daemons/FreeZePostGres")); if ($FreeZePostGres == 1) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Freeze !!! Aborting...\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Use Remote statistics.: {$InfluxUseRemote}\n"; } if (!$users->POSTFIX_INSTALLED) { $EnableIntelCeleron = intval(@file_get_contents("/etc/artica-postfix/settings/Daemons/EnableIntelCeleron")); if ($EnableIntelCeleron == 1) { $EnableInfluxDB = 0; } } if (is_file("/etc/artica-postfix/STATS_APPLIANCE")) { $EnableInfluxDB = 1; $SquidPerformance = 0; $EnableIntelCeleron = 0; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Use Statistics DB.....: {$EnableInfluxDB}\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Use Intel Celeron mode: {$EnableIntelCeleron}\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Use Performance.......: {$SquidPerformance}\n"; } if ($EnableInfluxDB == 0) { build_progress_restart("{starting} {failed} {disabled}", 110); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} service disabled (see EnableInflux)\n"; } return; } if (!function_exists("pg_connect")) { build_progress_restart("{starting} installing php5-pgsql", 35); $unix->DEBIAN_INSTALL_PACKAGE("php5-pgsql"); system("/usr/share/artica-postfix/exec.php.ini.php"); if (!function_exists("pg_connect")) { build_progress_restart("{starting} installing php5-pgsql {failed}", 110); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} pg_connect no such function\n"; } return; } system("/etc/init.d/artica-webconsole restart"); } build_progress_restart("{starting}", 40); if (!$unix->UnixUserExists("ArticaStats")) { $unix->CreateUnixUser("ArticaStats", "ArticaStats"); } @mkdir("/var/run/ArticaStats", 0755, true); @mkdir("/home/ArticaStatsDB", 0700, true); @mkdir("/var/log/ArticaStatsDB", 0755, true); @chown("/home/ArticaStatsDB", "ArticaStats"); @chgrp("/home/ArticaStatsDB", "ArticaStats"); @chown("/var/run/ArticaStats", "ArticaStats"); @chgrp("/var/run/ArticaStats", "ArticaStats"); @chown("/var/log/ArticaStatsDB", "ArticaStats"); @chgrp("/var/log/ArticaStatsDB", "ArticaStats"); if (is_file("/var/log/ArticaStatsDB/ArticaStatsDB.log")) { @unlink("/var/log/ArticaStatsDB/ArticaStatsDB.log"); @touch("/var/log/ArticaStatsDB/ArticaStatsDB.log"); } @chown("/var/log/ArticaStatsDB/ArticaStatsDB.log", "ArticaStats"); @chgrp("/var/log/ArticaStatsDB/ArticaStatsDB.log", "ArticaStats"); if (is_file("/var/run/ArticaStats/.s.PGSQL.8086")) { @unlink("/var/run/ArticaStats/.s.PGSQL.8086"); } $php = $unix->LOCATE_PHP5_BIN(); if (!is_file("/etc/artica-postfix/locales.gen")) { squid_admin_mysql(1, "Generating languages for the PostGreSQL compatibility", null, __FILE__, __LINE__); build_progress_restart("{generating_langs}", 42); system("{$php} /usr/share/artica-postfix/exec.locale.gen.php"); } if (!is_dir("/home/ArticaStatsDB/base/1")) { squid_admin_mysql(0, "Creating a new PostgreSQL database in ArticaStatsDB", null, __FILE__, __LINE__); build_progress_restart("{starting}", 45); $rm = $unix->find_program("rm"); shell_exec("{$rm} -rf /home/ArticaStatsDB/*"); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} initialize database...\n"; } system("{$su} -c \"/usr/local/ArticaStats/bin/initdb --username=ArticaStats /home/ArticaStatsDB --no-locale -E UTF8\" ArticaStats"); } if (!is_dir("/home/ArticaStatsDB/base/1")) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} initialize database failed...\n"; } $rm = $unix->find_program("rm"); shell_exec("{$rm} -rf /home/ArticaStatsDB/*"); return; } build_progress_restart("{starting}", 50); xbuild(); fuser_port(); build_progress_restart("{starting} {permissions}", 55); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Apply permissions on /home/ArticaStatsDB\n"; } $chown = $unix->find_program("chown"); $chmod = $unix->find_program("chmod"); shell_exec("{$chown} -R ArticaStats:ArticaStats /home/ArticaStatsDB"); shell_exec("{$chmod} 0700 /home/ArticaStatsDB"); if (is_file("/home/ArticaStatsDB/postmaster.pid")) { @unlink("/home/ArticaStatsDB/postmaster.pid"); } $f[] = "su -l ArticaStats -c '"; $f[] = "/usr/local/ArticaStats/bin/pg_ctl -o \"-k /tmp,/var/run/ArticaStats\" -D /home/ArticaStatsDB -l /var/log/ArticaStatsDB/ArticaStatsDB.log start'"; $cmd = @implode(" ", $f) . " >/dev/null 2>&1 &"; if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} service\n"; } shell_exec($cmd); for ($i = 1; $i < 5; $i++) { build_progress_restart("{starting} {wait} {$i}/5", 70); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} waiting {$i}/5\n"; } sleep(1); $pid = PID_NUM(); if ($unix->process_exists($pid)) { break; } } $pid = PID_NUM(); if ($unix->process_exists($pid)) { build_progress_restart("{starting} {success}", 75); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Success PID {$pid}\n"; } $pg = new postgres_sql(); $pg->CREATE_TABLES(); return true; } else { build_progress_restart("{starting} {failed}", 110); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Failed\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} {$cmd}\n"; } } }
function apache_stop() { $unix = new unix(); $pid = apache_pid(); $sock = new sockets(); $EnableArticaHotSpot = $sock->GET_INFO("EnableArticaHotSpot"); $SquidHotSpotPort = $sock->GET_INFO("SquidHotSpotPort"); $ArticaHotSpotPort = $sock->GET_INFO("ArticaHotSpotPort"); $ArticaSSLHotSpotPort = $sock->GET_INFO("ArticaSSLHotSpotPort"); $ArticaSplashHotSpotPort = $sock->GET_INFO("ArticaSplashHotSpotPort"); $ArticaSplashHotSpotPortSSL = $sock->GET_INFO("ArticaSplashHotSpotPortSSL"); if (!is_numeric($ArticaHotSpotPort)) { $ArticaHotSpotPort = 0; } if (!is_numeric($ArticaSplashHotSpotPort)) { $ArticaSplashHotSpotPort = 16080; } if (!is_numeric($ArticaSplashHotSpotPortSSL)) { $ArticaSplashHotSpotPortSSL = 16443; } if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} already stopped...\n"; } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} testing {$ArticaSplashHotSpotPortSSL} port...\n"; } fuser_port($ArticaSplashHotSpotPort); fuser_port($ArticaSplashHotSpotPortSSL); return; } $nohup = $unix->find_program("nohup"); $php5 = $unix->LOCATE_PHP5_BIN(); $kill = $unix->find_program("kill"); $apache2ctl = $unix->LOCATE_APACHE_CTL(); if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Shutdown pid {$pid}...\n"; } shell_exec("{$apache2ctl} -f /etc/artica-postfix/hotspot-httpd.conf -k stop"); for ($i = 0; $i < 5; $i++) { $pid = apache_pid(); if (!$unix->process_exists($pid)) { break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} waiting pid:{$pid} {$i}/5...\n"; } sleep(1); } $pid = apache_pid(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} success...\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} shutdown - force - pid {$pid}...\n"; } unix_system_kill_force($pid); for ($i = 0; $i < 5; $i++) { $pid = apache_pid(); if (!$unix->process_exists($pid)) { break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} waiting pid:{$pid} {$i}/5...\n"; } sleep(1); } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} testing {$ArticaSplashHotSpotPortSSL} port...\n"; } fuser_port($ArticaSplashHotSpotPortSSL); fuser_port($ArticaSplashHotSpotPort); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} success...\n"; } return; } else { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} failed...\n"; } } }
function apache_stop() { $unix = new unix(); $pid = apache_pid(); $sock = new sockets(); $SquidEnforceRules = intval($sock->GET_INFO("SquidEnforceRules")); $HyperCacheHTTPListenPort = $sock->GET_INFO("HyperCacheHTTPListenPort"); $HyperCacheHTTPListenPortSSL = $sock->GET_INFO("HyperCacheHTTPListenPortSSL"); if (!is_numeric($HyperCacheHTTPListenPort)) { $HyperCacheHTTPListenPort = 8700; } if (!is_numeric($HyperCacheHTTPListenPortSSL)) { $HyperCacheHTTPListenPortSSL = 8900; } if ($HyperCacheHTTPListenPort == 0) { $HyperCacheHTTPListenPort = 8700; } if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} already stopped...\n"; } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} testing {$HyperCacheHTTPListenPort}/{$HyperCacheHTTPListenPortSSL} port...\n"; } fuser_port($HyperCacheHTTPListenPort); fuser_port($HyperCacheHTTPListenPortSSL); return; } $nohup = $unix->find_program("nohup"); $php5 = $unix->LOCATE_PHP5_BIN(); $kill = $unix->find_program("kill"); $apache2ctl = $unix->LOCATE_APACHE_CTL(); if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Shutdown pid {$pid}...\n"; } shell_exec("{$apache2ctl} -f /etc/artica-postfix/HyperCacheHTTPD.conf -k stop"); for ($i = 0; $i < 5; $i++) { $pid = apache_pid(); if (!$unix->process_exists($pid)) { break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} waiting pid:{$pid} {$i}/5...\n"; } sleep(1); } $pid = apache_pid(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} success...\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} shutdown - force - pid {$pid}...\n"; } unix_system_kill_force($pid); for ($i = 0; $i < 5; $i++) { $pid = apache_pid(); if (!$unix->process_exists($pid)) { break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} waiting pid:{$pid} {$i}/5...\n"; } sleep(1); } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} testing {$HyperCacheHTTPListenPort}/{$HyperCacheHTTPListenPortSSL} port...\n"; } fuser_port($HyperCacheHTTPListenPort); fuser_port($HyperCacheHTTPListenPortSSL); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} success...\n"; } return; } else { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} failed...\n"; } } }
function apache_stop() { $GLOBALS["SERVICE_NAME"] = "Artica Apache service"; $unix = new unix(); $pid = apache_pid(); $sock = new sockets(); $ArticaHttpsPort = $sock->GET_INFO("ArticaHttpsPort"); if (!is_numeric($ArticaHttpsPort)) { $ArticaHttpsPort = "9000"; } if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} already stopped...\n"; } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} testing {$ArticaHttpsPort} port...\n"; } fuser_port($ArticaHttpsPort); apache_kill_ipcs(); return; } $nohup = $unix->find_program("nohup"); $php5 = $unix->LOCATE_PHP5_BIN(); $lighttpd_bin = $unix->find_program("lighttpd"); $kill = $unix->find_program("kill"); $apache2ctl = $unix->LOCATE_APACHE_CTL(); ToSyslog("ARTICA_STOP:: {$GLOBALS["SERVICE_NAME"]} Shutdown pid {$pid}"); if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} Shutdown pid {$pid}...\n"; } shell_exec("{$apache2ctl} -f /etc/artica-postfix/httpd.conf -k stop"); for ($i = 0; $i < 5; $i++) { $pid = apache_pid(); if (!$unix->process_exists($pid)) { break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} waiting pid:{$pid} {$i}/5...\n"; } sleep(1); } $pid = apache_pid(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} success...\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} shutdown - force - pid {$pid}...\n"; } unix_system_kill_force($pid); for ($i = 0; $i < 5; $i++) { $pid = apache_pid(); if (!$unix->process_exists($pid)) { break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} waiting pid:{$pid} {$i}/5...\n"; } sleep(1); } if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} testing {$ArticaHttpsPort} port...\n"; } fuser_port($ArticaHttpsPort); apache_kill_ipcs(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} success...\n"; } return; } else { if ($GLOBALS["OUTPUT"]) { echo "Stopping......: " . date("H:i:s") . " [INIT]: {$GLOBALS["SERVICE_NAME"]} failed...\n"; } } }
function start($aspid = false) { $unix = new unix(); $sock = new sockets(); $Masterbin = $unix->find_program("dnsmasq"); $ipClass = new IP(); if (!is_file($Masterbin)) { $unix->DEBIAN_INSTALL_PACKAGE("dnmasq"); } if (!is_file($Masterbin)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]}, dnsmasq not installed\n"; } return; } if (!$aspid) { $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $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["TITLENAME"]} Already Artica task running PID {$pid} since {$time}mn\n"; } return; } @file_put_contents($pidfile, getmypid()); } $pid = PID_NUM(); if ($unix->process_exists($pid)) { $timepid = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Service already started {$pid} since {$timepid}Mn...\n"; } return; } $sock = new sockets(); $EnableLocalDNSMASQ = $sock->GET_INFO('EnableLocalDNSMASQ'); $EnableDNSMASQ = intval($sock->GET_INFO("EnableDNSMASQ")); $EnableLocalDNSMASQ = $sock->GET_INFO("EnableLocalDNSMASQ"); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} EnableDNSMASQ={$EnableDNSMASQ}\n"; } if ($EnableLocalDNSMASQ == 1) { $EnableDNSMASQ = 1; } $EnableDNSMASQ = $sock->dnsmasq_enabled(); if ($EnableDNSMASQ == 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} EnableLocalDNSMASQ ({$EnableLocalDNSMASQ})\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} EnableDNSMASQ ({$EnableDNSMASQ})\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} service disabled (see EnableDNSMASQ)\n"; } return; } $php5 = $unix->LOCATE_PHP5_BIN(); $echo = $unix->find_program("echo"); $nohup = $unix->find_program("nohup"); if (!is_file("/etc/dnsmasq.cmdlines.array")) { build(true); } $G = unserialize(@file_get_contents("/etc/dnsmasq.cmdlines.array")); $cmdline = @implode(" ", $G); echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} " . count($G) . " token(s)\n"; while (list($num, $val) = each($G)) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} token: {$val}\n"; } if (!is_file("/etc/dnsmasq.conf.empty")) { @file_put_contents("/etc/dnsmasq.conf.empty", "\n"); } fuser_port(); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} service {" . __LINE__ . "}\n"; } shell_exec($cmdline); for ($i = 1; $i < 5; $i++) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} waiting {$i}/5\n"; } sleep(1); $pid = PID_NUM(); if ($unix->process_exists($pid)) { break; } } $pid = PID_NUM(); if ($unix->process_exists($pid)) { shell_exec("{$nohup} /etc/init.d/monit reconfigure >/dev/null 2>&1 &"); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Success PID {$pid}\n"; } } else { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} Failed\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$GLOBALS["TITLENAME"]} {$cmdline}\n"; } } }