removed ticketsystem; lots of work on cron stuff
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -15,105 +15,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
define('MASTER_CRONJOB', 1);
|
||||
|
||||
include_once dirname(dirname(__FILE__)) . '/lib/cron_init.php';
|
||||
|
||||
$jobs_to_run = array();
|
||||
|
||||
/**
|
||||
* check for --help
|
||||
*/
|
||||
if (count($argv) < 2 || (isset($argv[1]) && strtolower($argv[1]) == '--help')) {
|
||||
echo "\n*** Froxlor Master Cronjob ***\n\n";
|
||||
echo "Below are possible parameters for this file\n\n";
|
||||
echo "--[cronname]\t\tincludes the given cron-file\n";
|
||||
echo "--force\t\t\tforces re-generating of config-files (webserver, nameserver, etc.)\n";
|
||||
echo "--debug\t\t\toutput debug information about what is going on to STDOUT.\n";
|
||||
echo "--no-fork\t\t\tdo not fork to backkground (traffic cron only).\n\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* check for parameters
|
||||
*
|
||||
* --[cronname] include [cronname]
|
||||
* --force to include cron_tasks even if it's not its turn
|
||||
* --debug to output debug information
|
||||
*/
|
||||
for ($x = 1; $x < count($argv); $x++) {
|
||||
// check argument
|
||||
if (isset($argv[$x])) {
|
||||
// --force
|
||||
if (strtolower($argv[$x]) == '--force') {
|
||||
// really force re-generating of config-files by
|
||||
// inserting task 1
|
||||
inserttask('1');
|
||||
// bind (if enabled, inserttask() checks this)
|
||||
inserttask('4');
|
||||
// set quotas (if enabled)
|
||||
inserttask('10');
|
||||
// also regenerate cron.d-file
|
||||
inserttask('99');
|
||||
addToQueue($jobs_to_run, 'tasks');
|
||||
}
|
||||
elseif (strtolower($argv[$x]) == '--debug') {
|
||||
define('CRON_DEBUG_FLAG', 1);
|
||||
}
|
||||
elseif (strtolower($argv[$x]) == '--no-fork') {
|
||||
define('CRON_NOFORK_FLAG', 1);
|
||||
}
|
||||
// --[cronname]
|
||||
elseif (substr(strtolower($argv[$x]), 0, 2) == '--') {
|
||||
if (strlen($argv[$x]) > 3) {
|
||||
$cronname = substr(strtolower($argv[$x]), 2);
|
||||
addToQueue($jobs_to_run, $cronname);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$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
|
||||
foreach ($jobs_to_run as $cron) {
|
||||
updateLastRunOfCron($cron);
|
||||
$cronfile = getCronFile($cron);
|
||||
require_once $cronfile;
|
||||
}
|
||||
|
||||
if ($tasks_cnt['jobcnt'] > 0)
|
||||
{
|
||||
if (\Froxlor\Settings::Get('system.nssextrausers') == 1)
|
||||
{
|
||||
\Froxlor\Cron\System\Extrausers::generateFiles($cronlog);
|
||||
}
|
||||
|
||||
// clear NSCD cache if using fcgid or fpm, #1570
|
||||
if (\Froxlor\Settings::Get('system.mod_fcgid') == 1 || (int)\Froxlor\Settings::Get('phpfpm.enabled') == 1) {
|
||||
$false_val = false;
|
||||
safe_exec('nscd -i passwd 1> /dev/null', $false_val, array('>'));
|
||||
safe_exec('nscd -i group 1> /dev/null', $false_val, array('>'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fwrite($debugHandler, 'Cronfiles have been included' . "\n");
|
||||
|
||||
/**
|
||||
* we have to check the system's last guid with every cron run
|
||||
* in case the admin installed new software which added a new user
|
||||
* so users in the database don't conflict with system users
|
||||
*/
|
||||
$cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Checking system\'s last guid');
|
||||
checkLastGuid();
|
||||
|
||||
// shutdown cron
|
||||
include_once FROXLOR_INSTALL_DIR . '/lib/cron_shutdown.php';
|
||||
|
||||
// -- helper function
|
||||
function getCronFile($cronname) {
|
||||
@@ -129,9 +31,3 @@ function addToQueue(&$jobs_to_run, $cronname) {
|
||||
}
|
||||
}
|
||||
|
||||
function updateLastRunOfCron($cronname) {
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `".TABLE_PANEL_CRONRUNS."` SET `lastrun` = UNIX_TIMESTAMP() WHERE `cronfile` = :cron;
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('cron' => $cronname));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user