diff --git a/lib/Froxlor/Cron/FroxlorCron.php b/lib/Froxlor/Cron/FroxlorCron.php index d9d4dea8..3433d23e 100644 --- a/lib/Froxlor/Cron/FroxlorCron.php +++ b/lib/Froxlor/Cron/FroxlorCron.php @@ -23,7 +23,9 @@ abstract class FroxlorCron abstract public static function run(); - private static $lockfile = null; + protected static $cronlog = null; + + protected static $lockfile = null; public static function getLockfile() { diff --git a/lib/Froxlor/Cron/MasterCron.php b/lib/Froxlor/Cron/MasterCron.php index a95483f9..648cdc1d 100644 --- a/lib/Froxlor/Cron/MasterCron.php +++ b/lib/Froxlor/Cron/MasterCron.php @@ -22,6 +22,8 @@ class MasterCron extends \Froxlor\Cron\FroxlorCron private static $argv = null; + private static $debugHandler = null; + public static function setArguments($argv = null) { self::$argv = $argv; @@ -29,9 +31,7 @@ class MasterCron extends \Froxlor\Cron\FroxlorCron public static function run() { - define('MASTER_CRONJOB', 1); - - include_once \Froxlor\Froxlor::getInstallDir() . '/lib/cron_init.php'; + self::init(); $jobs_to_run = array(); @@ -86,11 +86,11 @@ class MasterCron extends \Froxlor\Cron\FroxlorCron $jobs_to_run = array_unique($jobs_to_run); - \Froxlor\FroxlorLogger::getInstanceOf()->setCronDebugFlag(defined('CRON_DEBUG_FLAG')); + self::$cronlog->setCronDebugFlag(defined('CRON_DEBUG_FLAG')); $tasks_cnt_stmt = \Froxlor\Database\Database::query("SELECT COUNT(*) as jobcnt FROM `panel_tasks`"); $tasks_cnt = $tasks_cnt_stmt->fetch(\PDO::FETCH_ASSOC); - + // do we have anything to include? if (count($jobs_to_run) > 0) { // include all jobs we want to execute @@ -104,7 +104,7 @@ class MasterCron extends \Froxlor\Cron\FroxlorCron if ($tasks_cnt['jobcnt'] > 0) { if (\Froxlor\Settings::Get('system.nssextrausers') == 1) { - \Froxlor\Cron\System\Extrausers::generateFiles($cronlog); + \Froxlor\Cron\System\Extrausers::generateFiles(self::$cronlog); } // clear NSCD cache if using fcgid or fpm, #1570 @@ -125,11 +125,218 @@ class MasterCron extends \Froxlor\Cron\FroxlorCron * in case the admin installed new software which added a new user * so users in the database don't conflict with system users */ - \Froxlor\FroxlorLogger::getInstanceOf()->logAction(CRON_ACTION, LOG_NOTICE, 'Checking system\'s last guid'); + self::$cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Checking system\'s last guid'); \Froxlor\System\Cronjob::checkLastGuid(); // shutdown cron - include_once \Froxlor\Froxlor::getInstallDir() . '/lib/cron_shutdown.php'; + self::shutdown(); + } + + private static function init() + { + if (@php_sapi_name() != 'cli' && @php_sapi_name() != 'cgi' && @php_sapi_name() != 'cgi-fcgi') { + die('This script will only work in the shell.'); + } + + // ensure that default timezone is set + if (function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get")) { + @date_default_timezone_set(@date_default_timezone_get()); + } + + $basename = basename($_SERVER['PHP_SELF'], '.php'); + $crontype = ""; + if (isset(self::$argv) && is_array(self::$argv) && count(self::$argv) > 1) { + for ($x = 1; $x < count(self::$argv); $x ++) { + if (substr(strtolower(self::$argv[$x]), 0, 2) == '--' && strlen(self::$argv[$x]) > 3) { + $crontype = substr(strtolower(self::$argv[$x]), 2); + $basename .= "-" . $crontype; + break; + } + } + } + $lockdir = '/var/run/'; + $lockFilename = 'froxlor_' . $basename . '.lock-'; + $lockfName = $lockFilename . getmypid(); + $lockfile = $lockdir . $lockfName; + self::setLockfile($lockfile); + + // create and open the lockfile! + self::$debugHandler = fopen($lockfile, 'w'); + fwrite(self::$debugHandler, 'Setting Lockfile to ' . $lockfile . "\n"); + fwrite(self::$debugHandler, 'Setting Froxlor installation path to ' . \Froxlor\Froxlor::getInstallDir() . "\n"); + + if (! file_exists(\Froxlor\Froxlor::getInstallDir() . '/lib/userdata.inc.php')) { + die("Froxlor does not seem to be installed yet - skipping cronjob"); + } + + $sql = array(); + $sql_root = array(); + // Includes the Usersettings eg. MySQL-Username/Passwort etc. + require \Froxlor\Froxlor::getInstallDir() . '/lib/userdata.inc.php'; + fwrite(self::$debugHandler, 'Userdatas included' . "\n"); + + // Legacy sql-root-information + if (isset($sql['root_user']) && isset($sql['root_password']) && (! isset($sql_root) || ! is_array($sql_root))) { + $sql_root = array( + 0 => array( + 'caption' => 'Default', + 'host' => $sql['host'], + 'user' => $sql['root_user'], + 'password' => $sql['root_password'] + ) + ); + unset($sql['root_user']); + unset($sql['root_password']); + } + + // Includes the Functions + require \Froxlor\Froxlor::getInstallDir() . '/lib/functions/constant.formfields.php'; + require \Froxlor\Froxlor::getInstallDir() . '/lib/functions/constant.logger.php'; + + // Includes the MySQL-Tabledefinitions etc. + require \Froxlor\Froxlor::getInstallDir() . '/lib/tables.inc.php'; + fwrite(self::$debugHandler, 'Table definitions included' . "\n"); + + // try database connection, it will throw + // and exception itself if failed + try { + \Froxlor\Database\Database::query("SELECT 1"); + } catch (\Exception $e) { + // Do not proceed further if no database connection could be established + fclose(self::$debugHandler); + unlink($lockfile); + die($e->getMessage()); + } + + fwrite(self::$debugHandler, 'Database-connection established' . "\n"); + + // open the lockfile directory and scan for existing lockfiles + $lockDirHandle = opendir($lockdir); + + while ($fName = readdir($lockDirHandle)) { + + if ($lockFilename == substr($fName, 0, strlen($lockFilename)) && $lockfName != $fName) { + // Check if last run jailed out with an exception + $croncontent = file($lockdir . $fName); + $lastline = $croncontent[(count($croncontent) - 1)]; + + if ($lastline == '=== Keep lockfile because of exception ===') { + fclose(self::$debugHandler); + unlink($lockfile); + \Froxlor\System\Cronjob::dieWithMail('Last cron jailed out with an exception. Exiting...' . "\n" . 'Take a look into the contents of ' . $lockdir . $fName . '* for more information!' . "\n"); + } + + // Check if cron is running or has died. + $check_pid = substr(strrchr($fName, "-"), 1); + $check_pid_return = null; + system("kill -CHLD " . (int) $check_pid . " 1> /dev/null 2> /dev/null", $check_pid_return); + + if ($check_pid_return == 1) { + // Result: Existing lockfile/pid isn't running + // Most likely it has died + // + // Action: Remove it and continue + // + fwrite(self::$debugHandler, 'Previous cronjob didn\'t exit clean. PID: ' . $check_pid . "\n"); + fwrite(self::$debugHandler, 'Removing lockfile: ' . $lockdir . $fName . "\n"); + @unlink($lockdir . $fName); + } else { + // Result: A Cronscript with this pid + // is still running + // Action: remove my own Lock and die + // + // close the current lockfile + fclose(self::$debugHandler); + + // ... and delete it + unlink($lockfile); + \Froxlor\System\Cronjob::dieWithMail('There is already a Cronjob for ' . $crontype . ' in progress. Exiting...' . "\n" . 'Take a look into the contents of ' . $lockdir . $lockFilename . '* for more information!' . "\n"); + } + } + } + + /** + * if using fcgid or fpm for froxlor-vhost itself, we have to check + * whether the permission of the files are still correct + */ + fwrite(self::$debugHandler, 'Checking froxlor file permissions' . "\n"); + $_mypath = \Froxlor\FileDir::makeCorrectDir(\Froxlor\Froxlor::getInstallDir()); + + if (((int) \Froxlor\Settings::Get('system.mod_fcgid') == 1 && (int) \Froxlor\Settings::Get('system.mod_fcgid_ownvhost') == 1) || ((int) \Froxlor\Settings::Get('phpfpm.enabled') == 1 && (int) \Froxlor\Settings::Get('phpfpm.enabled_ownvhost') == 1)) { + $user = \Froxlor\Settings::Get('system.mod_fcgid_httpuser'); + $group = \Froxlor\Settings::Get('system.mod_fcgid_httpgroup'); + + if (\Froxlor\Settings::Get('phpfpm.enabled') == 1) { + $user = \Froxlor\Settings::Get('phpfpm.vhost_httpuser'); + $group = \Froxlor\Settings::Get('phpfpm.vhost_httpgroup'); + } + // all the files and folders have to belong to the local user + // now because we also use fcgid for our own vhost + \Froxlor\FileDir::safe_exec('chown -R ' . $user . ':' . $group . ' ' . escapeshellarg($_mypath)); + } else { + // back to webserver permission + $user = \Froxlor\Settings::Get('system.httpuser'); + $group = \Froxlor\Settings::Get('system.httpgroup'); + \Froxlor\FileDir::safe_exec('chown -R ' . $user . ':' . $group . ' ' . escapeshellarg($_mypath)); + } + + // Initialize logging + self::$cronlog = \Froxlor\FroxlorLogger::getInstanceOf(array( + 'loginname' => 'cronjob' + )); + fwrite(self::$debugHandler, 'Logger has been included' . "\n"); + + if (\Froxlor\Froxlor::hasUpdates() || \Froxlor\Froxlor::hasDbUpdates()) { + if (\Froxlor\Settings::Get('system.cron_allowautoupdate') == null || \Froxlor\Settings::Get('system.cron_allowautoupdate') == 0) { + /** + * Do not proceed further if the Database version is not the same as the script version + */ + fclose(self::$debugHandler); + unlink($lockfile); + $errormessage = "Version of file doesn't match version of database. Exiting...\n\n"; + $errormessage .= "Possible reason: Froxlor update\n"; + $errormessage .= "Information: Current version in database: " . \Froxlor\Settings::Get('panel.version') . (! empty(\Froxlor\Froxlor::BRANDING) ? "-" . \Froxlor\Froxlor::BRANDING : "") . " (DB: " . \Froxlor\Settings::Get('panel.db_version') . ") - version of Froxlor files: " . \Froxlor\Froxlor::getVersionString() . ")\n"; + $errormessage .= "Solution: Please visit your Foxlor admin interface for further information.\n"; + \Froxlor\System\Cronjob::dieWithMail($errormessage); + } + + if (\Froxlor\Settings::Get('system.cron_allowautoupdate') == 1) { + /** + * let's walk the walk - do the dangerous shit + */ + self::$cronlog->logAction(CRON_ACTION, LOG_WARNING, 'Automatic update is activated and we are going to proceed without any notices'); + self::$cronlog->logAction(CRON_ACTION, LOG_WARNING, 'all new settings etc. will be stored with the default value, that might not always be right for your system!'); + self::$cronlog->logAction(CRON_ACTION, LOG_WARNING, "If you don't want this to happen in the future consider removing the --allow-autoupdate flag from the cronjob"); + fwrite(self::$debugHandler, '*** WARNING *** - Automatic update is activated and we are going to proceed without any notices' . "\n"); + fwrite(self::$debugHandler, '*** WARNING *** - all new settings etc. will be stored with the default value, that might not always be right for your system!' . "\n"); + fwrite(self::$debugHandler, "*** WARNING *** - If you don't want this to happen in the future consider removing the --allow-autoupdate flag from the cronjob\n"); + // including update procedures + define('_CRON_UPDATE', 1); + include_once \Froxlor\Froxlor::getInstallDir() . '/install/updatesql.php'; + // pew - everything went better than expected + self::$cronlog->logAction(CRON_ACTION, LOG_WARNING, 'Automatic update done - you should check your settings to be sure everything is fine'); + fwrite(self::$debugHandler, '*** WARNING *** - Automatic update done - you should check your settings to be sure everything is fine' . "\n"); + } + } + + fwrite(self::$debugHandler, 'Froxlor version and database version are correct' . "\n"); + } + + private static function shutdown() + { + // check for cron.d-generation task and create it if necessary + \Froxlor\Cron\CronConfig::checkCrondConfigurationFile(); + + if (\Froxlor\Settings::Get('logger.log_cron') == '1') { + \Froxlor\FroxlorLogger::getInstanceOf()->setCronLog(0); + fwrite(self::$debugHandler, 'Logging for cron has been shutdown' . "\n"); + } + + fclose(self::$debugHandler); + + if (\Froxlor\Settings::Get('system.debug_cron') != '1') { + unlink(self::getLockfile()); + } } private static function updateLastRunOfCron($cronname) @@ -153,7 +360,7 @@ class MasterCron extends \Froxlor\Cron\FroxlorCron if ($cron) { return $cron['cronclass']; } - \Froxlor\FroxlorLogger::getInstanceOf()->logAction(CRON_ACTION, LOG_ERROR, "Requested cronjob '" . $cronname . "' could not be found."); + self::$cronlog->logAction(CRON_ACTION, LOG_ERROR, "Requested cronjob '" . $cronname . "' could not be found."); return false; } } diff --git a/lib/Froxlor/Cron/System/TasksCron.php b/lib/Froxlor/Cron/System/TasksCron.php index 812106ed..78343504 100644 --- a/lib/Froxlor/Cron/System/TasksCron.php +++ b/lib/Froxlor/Cron/System/TasksCron.php @@ -28,7 +28,7 @@ class TasksCron extends \Froxlor\Cron\FroxlorCron /** * LOOK INTO TASKS TABLE TO SEE IF THERE ARE ANY UNDONE JOBS */ - \Froxlor\FroxlorLogger::getInstanceOf()->logAction(CRON_ACTION, LOG_INFO, "TasksCron: Searching for tasks to do"); + self::$cronlog->logAction(CRON_ACTION, LOG_INFO, "TasksCron: Searching for tasks to do"); // no type 99 (regenerate cron.d-file) and no type 20 (customer backup) $result_tasks_stmt = Database::query(" SELECT `id`, `type`, `data` FROM `" . TABLE_PANEL_TASKS . "` WHERE `type` <> '99' AND `type` <> '20' ORDER BY `id` ASC diff --git a/lib/Froxlor/FroxlorLogger.php b/lib/Froxlor/FroxlorLogger.php index 10c604e2..4b85b583 100644 --- a/lib/Froxlor/FroxlorLogger.php +++ b/lib/Froxlor/FroxlorLogger.php @@ -117,7 +117,7 @@ class FroxlorLogger public function logAction($action = USR_ACTION, $type = LOG_NOTICE, $text = null) { // not logging normal stuff if not set to "paranoid" logging - if (Settings::Get('logger.severity') == '1' && $type > LOG_NOTICE) { + if (!self::$crondebug_flag && Settings::Get('logger.severity') == '1' && $type > LOG_NOTICE) { return; } diff --git a/lib/Froxlor/System/MysqlHandler.php b/lib/Froxlor/System/MysqlHandler.php index c9dfc8ee..b0dc3647 100644 --- a/lib/Froxlor/System/MysqlHandler.php +++ b/lib/Froxlor/System/MysqlHandler.php @@ -63,4 +63,4 @@ class MysqlHandler extends AbstractProcessingHandler ':datetime' => $record['datetime']->format('U') ]); } -} \ No newline at end of file +} diff --git a/lib/cron_init.php b/lib/cron_init.php deleted file mode 100644 index fa56d1d2..00000000 --- a/lib/cron_init.php +++ /dev/null @@ -1,209 +0,0 @@ - (2003-2009) - * @author Froxlor team (2010-) - * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt - * @package Cron - * - */ - -if (@php_sapi_name() != 'cli' && @php_sapi_name() != 'cgi' && @php_sapi_name() != 'cgi-fcgi') { - die('This script will only work in the shell.'); -} - -// ensure that default timezone is set -if (function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get")) { - @date_default_timezone_set(@date_default_timezone_get()); -} - -$basename = basename($_SERVER['PHP_SELF'], '.php'); -$crontype = ""; -if (isset($argv) && is_array($argv) && count($argv) > 1) { - for ($x = 1; $x < count($argv); $x ++) { - if (substr(strtolower($argv[$x]), 0, 2) == '--' && strlen($argv[$x]) > 3) { - $crontype = substr(strtolower($argv[$x]), 2); - $basename .= "-" . $crontype; - break; - } - } -} -$lockdir = '/var/run/'; -$lockFilename = 'froxlor_' . $basename . '.lock-'; -$lockfName = $lockFilename . getmypid(); -$lockfile = $lockdir . $lockfName; - -// create and open the lockfile! -$keepLockFile = false; -$debugHandler = fopen($lockfile, 'w'); -fwrite($debugHandler, 'Setting Lockfile to ' . $lockfile . "\n"); -fwrite($debugHandler, 'Setting Froxlor installation path to ' . \Froxlor\Froxlor::getInstallDir() . "\n"); - -if (! file_exists(\Froxlor\Froxlor::getInstallDir() . '/lib/userdata.inc.php')) { - die("Froxlor does not seem to be installed yet - skipping cronjob"); -} - -// Includes the Usersettings eg. MySQL-Username/Passwort etc. -require \Froxlor\Froxlor::getInstallDir() . '/lib/userdata.inc.php'; -fwrite($debugHandler, 'Userdatas included' . "\n"); - -// Legacy sql-root-information -if (isset($sql['root_user']) && isset($sql['root_password']) && (! isset($sql_root) || ! is_array($sql_root))) { - $sql_root = array( - 0 => array( - 'caption' => 'Default', - 'host' => $sql['host'], - 'user' => $sql['root_user'], - 'password' => $sql['root_password'] - ) - ); - unset($sql['root_user']); - unset($sql['root_password']); -} - -// Includes the Functions -require \Froxlor\Froxlor::getInstallDir() . '/lib/functions/constant.formfields.php'; -require \Froxlor\Froxlor::getInstallDir() . '/lib/functions/constant.logger.php'; - -// Includes the MySQL-Tabledefinitions etc. -require \Froxlor\Froxlor::getInstallDir() . '/lib/tables.inc.php'; -fwrite($debugHandler, 'Table definitions included' . "\n"); - -// try database connection, it will throw -// and exception itself if failed -try { - \Froxlor\Database\Database::query("SELECT 1"); -} catch (Exception $e) { - // Do not proceed further if no database connection could be established - fclose($debugHandler); - unlink($lockfile); - die($e->getMessage()); -} - -fwrite($debugHandler, 'Database-connection established' . "\n"); - -// open the lockfile directory and scan for existing lockfiles -$lockDirHandle = opendir($lockdir); - -while ($fName = readdir($lockDirHandle)) { - - if ($lockFilename == substr($fName, 0, strlen($lockFilename)) && $lockfName != $fName) { - // Check if last run jailed out with an exception - $croncontent = file($lockdir . $fName); - $lastline = $croncontent[(count($croncontent) - 1)]; - - if ($lastline == '=== Keep lockfile because of exception ===') { - fclose($debugHandler); - unlink($lockfile); - \Froxlor\System\Cronjob::dieWithMail('Last cron jailed out with an exception. Exiting...' . "\n" . 'Take a look into the contents of ' . $lockdir . $fName . '* for more information!' . "\n"); - } - - // Check if cron is running or has died. - $check_pid = substr(strrchr($fName, "-"), 1); - system("kill -CHLD " . (int) $check_pid . " 1> /dev/null 2> /dev/null", $check_pid_return); - - if ($check_pid_return == 1) { - // Result: Existing lockfile/pid isn't running - // Most likely it has died - // - // Action: Remove it and continue - // - fwrite($debugHandler, 'Previous cronjob didn\'t exit clean. PID: ' . $check_pid . "\n"); - fwrite($debugHandler, 'Removing lockfile: ' . $lockdir . $fName . "\n"); - @unlink($lockdir . $fName); - } else { - // Result: A Cronscript with this pid - // is still running - // Action: remove my own Lock and die - // - // close the current lockfile - fclose($debugHandler); - - // ... and delete it - unlink($lockfile); - \Froxlor\System\Cronjob::dieWithMail('There is already a Cronjob for ' . $crontype . ' in progress. Exiting...' . "\n" . 'Take a look into the contents of ' . $lockdir . $lockFilename . '* for more information!' . "\n"); - } - } -} - -/** - * if using fcgid or fpm for froxlor-vhost itself, we have to check - * whether the permission of the files are still correct - */ -fwrite($debugHandler, 'Checking froxlor file permissions' . "\n"); -$_mypath = \Froxlor\FileDir::makeCorrectDir(\Froxlor\Froxlor::getInstallDir()); - -if (((int) \Froxlor\Settings::Get('system.mod_fcgid') == 1 && (int) \Froxlor\Settings::Get('system.mod_fcgid_ownvhost') == 1) || ((int) \Froxlor\Settings::Get('phpfpm.enabled') == 1 && (int) \Froxlor\Settings::Get('phpfpm.enabled_ownvhost') == 1)) { - $user = \Froxlor\Settings::Get('system.mod_fcgid_httpuser'); - $group = \Froxlor\Settings::Get('system.mod_fcgid_httpgroup'); - - if (\Froxlor\Settings::Get('phpfpm.enabled') == 1) { - $user = \Froxlor\Settings::Get('phpfpm.vhost_httpuser'); - $group = \Froxlor\Settings::Get('phpfpm.vhost_httpgroup'); - } - // all the files and folders have to belong to the local user - // now because we also use fcgid for our own vhost - \Froxlor\FileDir::safe_exec('chown -R ' . $user . ':' . $group . ' ' . escapeshellarg($_mypath)); -} else { - // back to webserver permission - $user = \Froxlor\Settings::Get('system.httpuser'); - $group = \Froxlor\Settings::Get('system.httpgroup'); - \Froxlor\FileDir::safe_exec('chown -R ' . $user . ':' . $group . ' ' . escapeshellarg($_mypath)); -} - -// Initialize logging -$cronlog = \Froxlor\FroxlorLogger::getInstanceOf(array( - 'loginname' => 'cronjob' -)); -fwrite($debugHandler, 'Logger has been included' . "\n"); - -if (\Froxlor\Froxlor::hasUpdates() || \Froxlor\Froxlor::hasDbUpdates()) { - if (\Froxlor\Settings::Get('system.cron_allowautoupdate') == null || \Froxlor\Settings::Get('system.cron_allowautoupdate') == 0) { - /** - * Do not proceed further if the Database version is not the same as the script version - */ - fclose($debugHandler); - unlink($lockfile); - $errormessage = "Version of file doesn't match version of database. Exiting...\n\n"; - $errormessage .= "Possible reason: Froxlor update\n"; - $errormessage .= "Information: Current version in database: " . \Froxlor\Settings::Get('panel.version') . (! empty(\Froxlor\Froxlor::BRANDING) ? "-" . \Froxlor\Froxlor::BRANDING : "") . " (DB: " . \Froxlor\Settings::Get('panel.db_version') . ") - version of Froxlor files: " . \Froxlor\Froxlor::getVersionString() . ")\n"; - $errormessage .= "Solution: Please visit your Foxlor admin interface for further information.\n"; - \Froxlor\System\Cronjob::dieWithMail($errormessage); - } - - if (\Froxlor\Settings::Get('system.cron_allowautoupdate') == 1) { - /** - * let's walk the walk - do the dangerous shit - */ - $cronlog->logAction(CRON_ACTION, LOG_WARNING, 'Automatic update is activated and we are going to proceed without any notices'); - $cronlog->logAction(CRON_ACTION, LOG_WARNING, 'all new settings etc. will be stored with the default value, that might not always be right for your system!'); - $cronlog->logAction(CRON_ACTION, LOG_WARNING, "If you don't want this to happen in the future consider removing the --allow-autoupdate flag from the cronjob"); - fwrite($debugHandler, '*** WARNING *** - Automatic update is activated and we are going to proceed without any notices' . "\n"); - fwrite($debugHandler, '*** WARNING *** - all new settings etc. will be stored with the default value, that might not always be right for your system!' . "\n"); - fwrite($debugHandler, "*** WARNING *** - If you don't want this to happen in the future consider removing the --allow-autoupdate flag from the cronjob\n"); - // including update procedures - define('_CRON_UPDATE', 1); - include_once \Froxlor\Froxlor::getInstallDir() . '/install/updatesql.php'; - // pew - everything went better than expected - $cronlog->logAction(CRON_ACTION, LOG_WARNING, 'Automatic update done - you should check your settings to be sure everything is fine'); - fwrite($debugHandler, '*** WARNING *** - Automatic update done - you should check your settings to be sure everything is fine' . "\n"); - } -} - -fwrite($debugHandler, 'Froxlor version and database version are correct' . "\n"); - -$cronscriptDebug = (\Froxlor\Settings::Get('system.debug_cron') == '1') ? true : false; - -// Create a new idna converter -$idna_convert = new \Froxlor\Idna\IdnaWrapper(); diff --git a/lib/cron_shutdown.php b/lib/cron_shutdown.php deleted file mode 100644 index 0e4e0262..00000000 --- a/lib/cron_shutdown.php +++ /dev/null @@ -1,36 +0,0 @@ - (2003-2009) - * @author Froxlor team (2010-) - * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt - * @package Cron - * - */ - -// check for cron.d-generation task and create it if necessary -\Froxlor\Cron\CronConfig::checkCrondConfigurationFile(); - -if (\Froxlor\Settings::Get('logger.log_cron') == '1') { - \Froxlor\FroxlorLogger::getInstanceOf()->setCronLog(0); - fwrite($debugHandler, 'Logging for cron has been shutdown' . "\n"); -} - -if ($keepLockFile === true) { - fwrite($debugHandler, '=== Keep lockfile because of exception ==='); -} - -fclose($debugHandler); - -if ($keepLockFile === false && $cronscriptDebug === false) { - unlink($lockfile); -}