function start() { $unix = new unix(); $sock = new sockets(); if (!isset($GLOBALS["MYSQL_BIN_PATH"])) { $GLOBALS["MYSQL_BIN_PATH"] = null; } if (!isset($GLOBALS["mysql_install_db"])) { $GLOBALS["mysql_install_db"] = true; } $pidfile = $GLOBALS["MYPID"]; $WORKDIR = $GLOBALS["WORKDIR"]; $SERV_NAME = $GLOBALS["SERV_NAME"]; $mysql_pid_file = $GLOBALS["MYSQL_PID"]; $MYSQL_SOCKET = $GLOBALS["MYSQL_SOCKET"]; $ArticaDBPath = $sock->GET_INFO("ArticaDBPath"); if ($ArticaDBPath == null) { $ArticaDBPath = "/opt/articatech"; } $GLOBALS["WORKDIR"] = $ArticaDBPath; $GLOBALS["MYSQL_BIN_PATH"] = "{$GLOBALS["WORKDIR"]}/bin/articadb"; $OutputBinLog = $unix->FILE_TEMP(); $mysqlserv = new mysql_services(); $mysqlserv->WORKDIR = $GLOBALS["WORKDIR"]; $mysqlserv->MYSQL_PID_FILE = $mysql_pid_file; $mysqlserv->MYSQL_SOCKET = $MYSQL_SOCKET; $mysqlserv->SERV_NAME = $SERV_NAME; $mysqlserv->TokenParams = "MySQLCatzParams"; $mysqlserv->INSTALL_DATABASE = $GLOBALS["mysql_install_db"]; $mysqlserv->MYSQL_BIN_DAEMON_PATH = $GLOBALS["MYSQL_BIN_PATH"]; $mysqlserv->MYSQL_ERRMSG = $GLOBALS["MYSQL_ERRMSG"]; $mysqlserv->InnoDB = false; $mysqlserv->OutputBinLog = $OutputBinLog; $pid = $unix->get_pid_from_file($pidfile); $EnableWebProxyStatsAppliance = $sock->GET_INFO("EnableWebProxyStatsAppliance"); $DisableArticaProxyStatistics = $sock->GET_INFO("DisableArticaProxyStatistics"); $EnableRemoteStatisticsAppliance = $sock->GET_INFO("EnableRemoteStatisticsAppliance"); $SquidActHasReverse = $sock->GET_INFO("SquidActHasReverse"); if (!is_numeric($EnableWebProxyStatsAppliance)) { $EnableWebProxyStatsAppliance = 0; } if (!is_numeric($EnableRemoteStatisticsAppliance)) { $EnableRemoteStatisticsAppliance = 0; } if (!is_numeric($EnableRemoteStatisticsAppliance)) { $EnableRemoteStatisticsAppliance = 0; } if (!is_numeric($SquidActHasReverse)) { $SquidActHasReverse = 0; } if ($unix->isNGnx()) { $SquidActHasReverse = 0; } $EnableArticaDB = 1; if (is_file('/etc/artica-postfix/WEBSTATS_APPLIANCE')) { $EnableWebProxyStatsAppliance = 1; } if (is_file('/etc/artica-postfix/SQUID_REVERSE_APPLIANCE')) { $EnableArticaDB = 0; } if ($DisableArticaProxyStatistics == 1) { $EnableArticaDB = 0; } if ($EnableRemoteStatisticsAppliance == 1) { $EnableArticaDB = 0; } if ($EnableWebProxyStatsAppliance == 1) { $EnableArticaDB = 1; } if ($SquidActHasReverse == 1) { $EnableArticaDB = 0; } if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Starting Task Already running PID {$pid} since {$time}mn\n"; } return; } @file_put_contents($pidfile, getmypid()); $mysql_install_db = $unix->find_program("mysql_install_db"); if ($EnableArticaDB == 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} is disabled...\n"; } stop(); die(0); } if ($GLOBALS["MYSQL_BIN_PATH"] != null) { $mysqld = $GLOBALS["MYSQL_BIN_PATH"]; } else { $mysqld = $unix->find_program("mysqld"); } if (!is_file($mysqld)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} is not installed...\n"; } return; } if ($GLOBALS["mysql_install_db"]) { if (!is_file($mysql_install_db)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} mysql_install_db no such binary...\n"; } return; } } $pid = DBPID(); if ($unix->process_exists($pid)) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} MySQL Database Engine already running pid {$pid} since {$time}mn\n"; } return; } if (!is_file("{$GLOBALS["WORKDIR"]}/VERSION")) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} Corrupted database, launch updates...\n"; } } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} writing init.d\n"; } initd(); $TMP = $unix->FILE_TEMP(); $cmdline = $mysqlserv->BuildParams(); $nohup = $unix->find_program("nohup"); if ($GLOBALS["VERBOSE"]) { echo $cmdline . "\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} Starting MySQL daemon ({$SERV_NAME})\n"; } shell_exec("{$nohup} {$cmdline} >{$TMP} 2>&1 &"); sleep(1); for ($i = 0; $i < 5; $i++) { $pid = DBPID(); if ($unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} MySQL daemon ({$SERV_NAME}) started pid .{$pid}..\n"; } break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL daemon wait {$i}/5\n"; } sleep(1); } sleep(1); $pid = DBPID(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} MySQL daemon ({$SERV_NAME}) failed to start\n"; } $f = explode("\n", @file_get_contents($TMP)); $repair = false; while (list($num, $ligne) = each($f)) { if (trim($ligne) == null) { continue; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} {$ligne}\n"; } } $mysqlserv->CheckOutputErrors($TMP); } else { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} MySQL daemon ({$SERV_NAME}) success\n"; } } if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} {$cmdline}\n"; } } $unix->THREAD_COMMAND_SET($unix->LOCATE_PHP5_BIN() . " " . __FILE__ . " --databasesize"); }
function start() { $unix = new unix(); $pidfile = $GLOBALS["MYPID"]; $WORKDIR = $GLOBALS["WORKDIR"]; $SERV_NAME = $GLOBALS["SERV_NAME"]; $mysql_pid_file = "/var/run/amavis-db.pid"; $MYSQL_SOCKET = "/var/run/mysqld/amavis-db.sock"; $mysqlserv = new mysql_services(); $mysqlserv->WORKDIR = $GLOBALS["WORKDIR"]; $mysqlserv->MYSQL_PID_FILE = $mysql_pid_file; $mysqlserv->MYSQL_SOCKET = $MYSQL_SOCKET; $mysqlserv->SERV_NAME = $SERV_NAME; $mysqlserv->TokenParams = "AmavisDBMysqlParams"; $mysqlserv->InnoDB = true; $pid = $unix->get_pid_from_file($pidfile); $sock = new sockets(); $AmavisPerUser = $sock->GET_INFO("AmavisPerUser"); if (!is_numeric($AmavisPerUser)) { $AmavisPerUser = 0; } $EnableStopPostfix = $sock->GET_INFO("EnableStopPostfix"); if (!is_numeric($EnableStopPostfix)) { $EnableStopPostfix = 0; } if ($EnableStopPostfix == 1) { $AmavisPerUser = 0; } if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Starting Task Already running PID {$pid} since {$time}mn\n"; } return; } @file_put_contents($pidfile, getmypid()); $mysql_install_db = $unix->find_program("mysql_install_db"); if ($AmavisPerUser == 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} is disabled...\n"; } stop(); die(0); } $mysqld = $unix->find_program("mysqld"); if (!is_file($mysqld)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} is not installed...\n"; } return; } if (!is_file($mysql_install_db)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} mysql_install_db no such binary...\n"; } return; } $pid = DBPID(); if ($unix->process_exists($pid)) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} MySQL Database Engine already running pid {$pid} since {$time}mn\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} writing init.d\n"; } initd(); $TMP = $unix->FILE_TEMP(); $cmdline = $mysqlserv->BuildParams(); $nohup = $unix->find_program("nohup"); if ($GLOBALS["VERBOSE"]) { echo $cmdline . "\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} Starting MySQL daemon ({$SERV_NAME})\n"; } shell_exec("{$nohup} {$cmdline} >{$TMP} 2>&1 &"); sleep(1); for ($i = 0; $i < 10; $i++) { $pid = DBPID(); if ($unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} MySQL daemon ({$SERV_NAME}) started pid .{$pid}..\n"; } break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL daemon wait {$i}/10\n"; } sleep(1); } sleep(1); $pid = DBPID(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} MySQL daemon ({$SERV_NAME}) failed to start\n"; } $f = explode("\n", @file_get_contents($TMP)); while (list($num, $ligne) = each($TMP)) { if (trim($ligne) == null) { continue; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} {$ligne}\n"; } } } else { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} MySQL daemon ({$SERV_NAME}) success\n"; } $q = new amavisdb(); $q->checkTables(); } if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} {$cmdline}\n"; } } $unix->THREAD_COMMAND_SET($unix->LOCATE_PHP5_BIN() . " " . __FILE__ . " --databasesize"); }
function start($nopid = false, $forceInnoDbRecover = false) { $unix = new unix(); $SERV_NAME = "zarafa-db"; $pidfile = "/etc/artica-postfix/pids/zarafadbstart.pid"; if (!$nopid) { $PidRestore = "/etc/artica-postfix/pids/zarafaRestore.pid"; $pid = $unix->get_pid_from_file($PidRestore); if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Restore Task Already running PID {$pid} since {$time}mn\n"; } return; } $pid = $unix->get_pid_from_file($pidfile); $sock = new sockets(); if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Starting Task Already running PID {$pid} since {$time}mn\n"; } return; } } @file_put_contents($pidfile, getmypid()); $sock = new sockets(); $ZarafaDedicateMySQLServer = $sock->GET_INFO("ZarafaDedicateMySQLServer"); if (!is_numeric($ZarafaDedicateMySQLServer)) { $ZarafaDedicateMySQLServer = 0; } if ($ZarafaDedicateMySQLServer == 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} is not Enabled...\n"; } return; } $mysqld = $unix->find_program("mysqld"); if (!is_file($mysqld)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: mysqld no such binary\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} is not installed...\n"; } return; } $PID = ZARAFADB_PID(); $unix = new unix(); if ($unix->process_exists($PID)) { $time = $unix->PROCCESS_TIME_MIN($PID); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} Already running since {$time}mn\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: writing init.d\n"; } initd(); $WORKDIR = $sock->GET_INFO("ZarafaDedicateMySQLWorkDir"); if ($WORKDIR == null) { $WORKDIR = "/home/zarafa-db"; } $mysql_pid_file = "/var/run/zarafa-db.pid"; $MYSQL_SOCKET = "/var/run/mysqld/zarafa-db.sock"; $mysqlserv = new mysql_services(); $mysqlserv->WORKDIR = $WORKDIR; $mysqlserv->MYSQL_PID_FILE = $mysql_pid_file; $mysqlserv->MYSQL_SOCKET = $MYSQL_SOCKET; $mysqlserv->SERV_NAME = $SERV_NAME; $mysqlserv->TokenParams = "ZarafaTuningParameters"; $mysqlserv->InnoDB = true; $mysqlserv->forceInnoDbRecover = $forceInnoDbRecover; $mysqlserv->ForceHomeInnoDbDir = true; $mysqlserv->AsZarafa = true; $TMP = $unix->FILE_TEMP(); $cmdline = $mysqlserv->BuildParams(); $nohup = $unix->find_program("nohup"); if ($GLOBALS["VERBOSE"]) { echo $cmdline . "\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Starting MySQL daemon\n"; } @unlink("/home/zarafa-db/error.log"); shell_exec("{$nohup} {$cmdline} >{$TMP} 2>&1 &"); sleep(2); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Checking potentials errors\n"; } if (ChecksError()) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Error detected starting again\n"; } @unlink("/home/zarafa-db/error.log"); shell_exec("{$nohup} {$cmdline} >/dev/null 2>&1 &"); } for ($i = 0; $i < 10; $i++) { $pid = ZARAFADB_PID(); if ($unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL daemon started pid .{$pid}..\n"; } break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL daemon wait {$i}/10\n"; } sleep(1); } $pid = ZARAFADB_PID(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL daemon failed to start\n"; } $f = explode("\n", @file_get_contents($TMP)); @unlink($TMP); while (list($num, $ligne) = each($f)) { if (trim($ligne) == null) { continue; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$ligne}\n"; } } } if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$cmdline}\n"; } } $unix->THREAD_COMMAND_SET($unix->LOCATE_PHP5_BIN() . " " . __FILE__ . " --databasesize"); }
function start($nopid = false) { $unix = new unix(); $SERV_NAME = $GLOBALS["SRV_NAME"]; $pidfile = $GLOBALS["MYPID_PATH"]; if (!$nopid) { $pid = $unix->get_pid_from_file($pidfile); $sock = new sockets(); if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Starting Task Already running PID {$pid} since {$time}mn\n"; } return; } } @file_put_contents($pidfile, getmypid()); if (!is_dir($unix->LOCATE_ROUNDCUBE_WEBFOLDER())) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} RoundCube not installed...\n"; } } $sock = new sockets(); $RoundCubeDedicateMySQLServer = $sock->GET_INFO("RoundCubeDedicateMySQLServer"); if (!is_numeric($RoundCubeDedicateMySQLServer)) { $RoundCubeDedicateMySQLServer = 0; } if ($RoundCubeDedicateMySQLServer == 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} is not Enabled...\n"; } return; } $mysqld = $unix->find_program("mysqld"); if (!is_file($mysqld)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} mysqld no such binary\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} is not installed...\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} writing init.d\n"; } initd(); $WORKDIR = $sock->GET_INFO($GLOBALS["WORK_DIR_TOKEN"]); if ($WORKDIR == null) { $WORKDIR = $GLOBALS["WORK_DIR_DEFAULT"]; } $mysqlserv = new mysql_services(); $mysqlserv->WORKDIR = $WORKDIR; $mysqlserv->MYSQL_PID_FILE = $GLOBALS["PID_PATH"]; $mysqlserv->MYSQL_SOCKET = $GLOBALS["MYSQL_SOCKET"]; $mysqlserv->SERV_NAME = $SERV_NAME; $mysqlserv->TokenParams = $GLOBALS["MYSQL_TOKENS"]; $mysqlserv->InnoDB = false; $TMP = $unix->FILE_TEMP(); $cmdline = $mysqlserv->BuildParams(); $nohup = $unix->find_program("nohup"); if ($GLOBALS["VERBOSE"]) { echo $cmdline . "\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} Starting MySQL daemon\n"; } shell_exec("{$nohup} {$cmdline} >/dev/null 2>&1 &"); sleep(1); for ($i = 0; $i < 10; $i++) { $pid = SERVICEDB_PID(); if ($unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL daemon started pid .{$pid}..\n"; } break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL daemon wait {$i}/10\n"; } sleep(1); } $pid = SERVICEDB_PID(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL daemon failed to start\n"; } $f = explode("\n", @file_get_contents($TMP)); while (list($num, $ligne) = each($TMP)) { if (trim($ligne) == null) { continue; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} {$ligne}\n"; } } } if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} {$cmdline}\n"; } } $unix->THREAD_COMMAND_SET($unix->LOCATE_PHP5_BIN() . " " . __FILE__ . " --databasesize"); }
function start() { $unix = new unix(); if (!isset($GLOBALS["MYSQL_BIN_PATH"])) { $GLOBALS["MYSQL_BIN_PATH"] = null; } if (!isset($GLOBALS["mysql_install_db"])) { $GLOBALS["mysql_install_db"] = true; } $pidfile = $GLOBALS["MYPID"]; $WORKDIR = $GLOBALS["WORKDIR"]; $SERV_NAME = $GLOBALS["SERV_NAME"]; $mysql_pid_file = $GLOBALS["MYSQL_PID"]; $MYSQL_SOCKET = $GLOBALS["MYSQL_SOCKET"]; $pid = $unix->get_pid_from_file($pidfile); $sock = new sockets(); $MySQLShorewallType = $sock->GET_INFO("MySQLShorewallType"); if (!is_numeric($MySQLShorewallType)) { $MySQLShorewallType = 1; } $MySQLWorkDir = $sock->GET_INFO("MySQLShorewallWorkDir"); if ($MySQLWorkDir == null) { $MySQLWorkDir = $GLOBALS["WORKDIR"]; } $shorewall = $unix->find_program("shorewall"); if (!is_file($shorewall)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} main application not installed...\n"; } return; } if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Starting Task Already running PID {$pid} since {$time}mn\n"; } return; } @file_put_contents($pidfile, getmypid()); $mysql_install_db = $unix->find_program("mysql_install_db"); if ($MySQLShorewallType != 1) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} is not a server...\n"; } stop(); die(0); } if ($GLOBALS["MYSQL_BIN_PATH"] != null) { $mysqld = $GLOBALS["MYSQL_BIN_PATH"]; } else { $mysqld = $unix->find_program("mysqld"); } if (!is_file($mysqld)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} is not installed (mysqld, no such binary)...\n"; } return; } if ($GLOBALS["mysql_install_db"]) { if (!is_file($mysql_install_db)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} mysql_install_db no such binary...\n"; } return; } } $pid = DBPID(); if ($unix->process_exists($pid)) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL Database Engine already running pid {$pid} since {$time}mn\n"; } return; } $TMP = $unix->FILE_TEMP(); @mkdir($MySQLWorkDir, 0755, true); $mysqlserv = new mysql_services(); $mysqlserv->WORKDIR = $MySQLWorkDir; $mysqlserv->MYSQL_PID_FILE = $mysql_pid_file; $mysqlserv->MYSQL_SOCKET = $MYSQL_SOCKET; $mysqlserv->SERV_NAME = $SERV_NAME; $mysqlserv->TokenParams = "MySQLShoreWallParams"; $mysqlserv->INSTALL_DATABASE = $GLOBALS["mysql_install_db"]; $mysqlserv->MYSQL_BIN_DAEMON_PATH = $GLOBALS["MYSQL_BIN_PATH"]; $mysqlserv->MYSQL_ERRMSG = $GLOBALS["MYSQL_ERRMSG"]; $mysqlserv->InnoDB = false; $cmdline = $mysqlserv->BuildParams(); $nohup = $unix->find_program("nohup"); if ($GLOBALS["VERBOSE"]) { echo $cmdline . "\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} Starting MySQL daemon ({$SERV_NAME})\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} Starting MySQL daemon Output in {$TMP}\n"; } $ExecutLine = "{$nohup} {$cmdline} >{$TMP} 2>&1 &"; shell_exec($ExecutLine); sleep(1); for ($i = 0; $i < 10; $i++) { $pid = DBPID(); if ($unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL daemon ({$SERV_NAME}) started pid .{$pid}..\n"; } break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL daemon wait {$i}/10\n"; } sleep(1); } sleep(1); $pid = DBPID(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL daemon ({$SERV_NAME}) failed to start\n"; } if ($GLOBALS["OUTPUT"]) { echo "{$ExecutLine}\n"; } $f = explode("\n", @file_get_contents($TMP)); while (list($num, $ligne) = each($f)) { if (trim($ligne) == null) { continue; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} {$ligne}\n"; } } } else { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL daemon ({$SERV_NAME}) success\n"; } } $mysqlserv->CheckOutputErrors($TMP); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} {$cmdline}\n"; } } $unix->THREAD_COMMAND_SET($unix->LOCATE_PHP5_BIN() . " " . __FILE__ . " --databasesize"); }
function start($skipGrant = false) { if (is_file("/etc/artica-postfix/FROM_ISO")) { if (!is_file("/etc/artica-postfix/artica-iso-setup-launched")) { return; } } $unix = new unix(); $pidfile = "/etc/artica-postfix/pids/squiddbstart.pid"; $sock = new sockets(); $WORKDIR = $sock->GET_INFO("SquidStatsDatabasePath"); if ($WORKDIR == null) { $WORKDIR = "/opt/squidsql"; } $SERV_NAME = "squid-db"; $pid = $unix->get_pid_from_file($pidfile); $sock = new sockets(); $nohup = $unix->find_program("nohup"); $php5 = $unix->LOCATE_PHP5_BIN(); $lnbin = $unix->find_program("ln"); if (!$GLOBALS["FORCE"]) { if (!$GLOBALS["NOPID"]) { if ($unix->process_exists($pid, basename(__FILE__))) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Starting Task Already running PID {$pid} since {$time}mn\n"; } return; } } } @file_put_contents($pidfile, getmypid()); $GetStartedValues = GetStartedValues(); $sock = new sockets(); $ProxyUseArticaDB = $sock->GET_INFO("ProxyUseArticaDB"); $DisableArticaProxyStatistics = $sock->GET_INFO("DisableArticaProxyStatistics"); if (!is_numeric($ProxyUseArticaDB)) { $ProxyUseArticaDB = 0; } if (!is_numeric($DisableArticaProxyStatistics)) { $DisableArticaProxyStatistics = 0; } if (!is_dir($WORKDIR)) { @mkdir($WORKDIR, 0755, true); } if ($ProxyUseArticaDB == 0) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} is disabled...\n"; } stop(); return; } $mysqld = $unix->find_program("mysqld"); if (!is_file($mysqld)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]:{$SERV_NAME} is not installed...\n"; } return; } $pid = SQUIDDB_PID(); if ($unix->process_exists($pid)) { $time = $unix->PROCCESS_TIME_MIN($pid); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} MySQL Database Engine already running pid {$pid} since {$time}mn\n"; } return; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} writing init.d\n"; } initd(); $memory = get_memory(); $swap = get_swap(); if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} Server available memory `{$memory}MB`\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} Server available swap `{$swap}MB`\n"; } $SquidDBTuningParameters = unserialize(base64_decode($sock->GET_INFO("SquidDBTuningParameters"))); $ListenPort = $SquidDBTuningParameters["ListenPort"]; if (!is_numeric($ListenPort)) { $ListenPort = 0; } if ($ListenPort == 0) { $ListenPort = rand(8900, 45890); $SquidDBTuningParameters["ListenPort"] = $ListenPort; $sock->SET_INFO("SquidDBTuningParameters", base64_encode(serialize($SquidDBTuningParameters))); } @mkdir($WORKDIR, 0755, true); $mysqlserv = new mysql_services(); $mysqlserv->WORKDIR = $WORKDIR; $mysqlserv->MYSQL_PID_FILE = "/var/run/squid-db.pid"; $mysqlserv->MYSQL_SOCKET = "/var/run/mysqld/squid-db.sock"; $mysqlserv->SERV_NAME = $SERV_NAME; $mysqlserv->TokenParams = "SquidDBTuningParameters"; $mysqlserv->INSTALL_DATABASE = true; $mysqlserv->MYSQL_BIN_DAEMON_PATH = $unix->find_program("mysqld"); //$mysqlserv->MYSQL_ERRMSG=$GLOBALS["MYSQL_ERRMSG"]; $mysqlserv->InnoDB = false; $cmdline = $mysqlserv->BuildParams(); $CREATEDB = false; if (!is_file("{$WORKDIR}/my.cnf")) { @file_put_contents("{$WORKDIR}/my.cnf", "\n"); } if (!is_file("{$WORKDIR}/bin/my_print_defaults")) { $my_print_defaults = $unix->find_program("my_print_defaults"); shell_exec("{$lnbin} -s {$my_print_defaults} {$WORKDIR}/bin/my_print_defaults"); } if (!is_file("{$WORKDIR}/data/mysql/user.MYD")) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$SERV_NAME} Installing defaults databases, Please Wait...\n"; } install_db($WORKDIR); $CREATEDB = true; } $topCopyMysql["host.frm"] = true; $topCopyMysql["host.MYD"] = true; $topCopyMysql["host.MYI"] = true; $topCopyMysql["servers.frm"] = true; $topCopyMysql["servers.MYD"] = true; $topCopyMysql["servers.MYI"] = true; $MYSQL_DATA_DIR = $unix->MYSQL_DATA_DIR(); $topCopyMysqlForce["tables_priv.frm"] = true; $topCopyMysqlForce["tables_priv.MYD"] = true; $topCopyMysqlForce["tables_priv.MYI"] = true; $topCopyMysqlForce["columns_priv.frm"] = true; $topCopyMysqlForce["columns_priv.MYD"] = true; $topCopyMysqlForce["columns_priv.MYI"] = true; $topCopyMysqlForce["procs_priv.frm"] = true; $topCopyMysqlForce["procs_priv.MYD"] = true; $topCopyMysqlForce["procs_priv.MYI"] = true; $topCopyMysqlForce["plugin.frm"] = true; $topCopyMysqlForce["plugin.MYD"] = true; $topCopyMysqlForce["plugin.MYI"] = true; $topCopyMysqlForce["user.frm"] = true; $topCopyMysqlForce["user.MYD"] = true; $topCopyMysqlForce["user.MYI"] = true; $topCopyMysqlForce["db.frm"] = true; $topCopyMysqlForce["db.MYD"] = true; $topCopyMysqlForce["db.MYI"] = true; $ToCopyForce = false; while (list($filename, $ligne) = each($topCopyMysql)) { if (!is_file("{$WORKDIR}/data/mysql/{$filename}")) { $ToCopyForce = true; if (is_file("{$MYSQL_DATA_DIR}/mysql/{$filename}")) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Installing {$filename}\n"; } @copy("{$MYSQL_DATA_DIR}/mysql/{$filename}", "{$WORKDIR}/data/mysql/{$filename}"); $CREATEDB = true; } } } while (list($filename, $ligne) = each($topCopyMysqlForce)) { if (!is_file("{$WORKDIR}/data/mysql/{$filename}")) { if (is_file("{$MYSQL_DATA_DIR}/mysql/{$filename}")) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Installing {$filename}\n"; } @copy("{$MYSQL_DATA_DIR}/mysql/{$filename}", "{$WORKDIR}/data/mysql/{$filename}"); } } } @mkdir("{$WORKDIR}/share/mysql/english", 0755, true); $Get_errmsgsys = Get_errmsgsys(); if (!is_file("{$WORKDIR}/share/mysql/english/errmsg.sys")) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Creating errmsg.sys\n"; } ini_set('error_reporting', E_ALL); ini_set('error_prepend_string', null); ini_set('error_append_string', null); if (is_file($Get_errmsgsys)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: copy {$Get_errmsgsys} -> {$WORKDIR}/share/mysql/english/errmsg.sys\n"; } copy(Get_errmsgsys(), "{$WORKDIR}/share/mysql/english/errmsg.sys"); } else { file_put_contents("{$WORKDIR}/share/mysql/english/errmsg.sys", "\n"); } } else { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: errmsg.sys OK\n"; } } $TMP = $unix->FILE_TEMP(); $nohup = $unix->find_program("nohup"); if ($GLOBALS["VERBOSE"]) { echo $cmdline . "\n"; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: Starting MySQL daemon ({$SERV_NAME})\n"; } @unlink("{$WORKDIR}/error.log"); shell_exec("{$nohup} {$cmdline} >{$TMP} 2>&1 &"); sleep(1); for ($i = 0; $i < 5; $i++) { $pid = SQUIDDB_PID(); if ($unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL daemon ({$SERV_NAME}) started pid .{$pid}..\n"; } break; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL daemon wait {$i}/5\n"; } sleep(1); } sleep(1); $pid = SQUIDDB_PID(); if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL daemon ({$SERV_NAME}) failed to start\n"; } if (is_file($TMP)) { $f = explode("\n", @file_get_contents($TMP)); while (list($num, $ligne) = each($f)) { if (trim($ligne) == null) { continue; } if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$ligne}\n"; } } } $f = explode("\n", @file_get_contents("{$WORKDIR}/error.log")); while (list($num, $ligne) = each($f)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL Results \"{$ligne}\"\n"; } if (preg_match("#Incorrect information in file: './mysql/proxies_priv.frm'#", $ligne)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: remove MySQL tables and install again...\n"; } shell_exec("/bin/rm -rf {$WORKDIR}/data/mysql/*"); shell_exec("{$nohup} {$php5} " . __FILE__ . " --start --recall >/dev/ null 2>&1 &"); return; } } } else { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: MySQL daemon ({$SERV_NAME}) success\n"; } if ($CREATEDB) { $q = new mysql_squid_builder(); $q->CheckTables(); } $q = new mysql_squid_builder(); $q->MEMORY_TABLES_RESTORE(); } if (!$unix->process_exists($pid)) { if ($GLOBALS["OUTPUT"]) { echo "Starting......: " . date("H:i:s") . " [INIT]: {$cmdline}\n"; } } $unix->THREAD_COMMAND_SET($unix->LOCATE_PHP5_BIN() . " " . __FILE__ . " --databasesize"); }