diff --git a/cronjobs/shared.inc.php b/cronjobs/shared.inc.php index 1794f76bb..b16e0c3e8 100644 --- a/cronjobs/shared.inc.php +++ b/cronjobs/shared.inc.php @@ -69,6 +69,12 @@ function cfip() { return (@defined('SECURITY')) ? 1 : 0; } // Load the start time for later runtime calculations for monitoring $cron_start[$cron_name] = microtime(true); +// Skip all crons if admin enabled pool maintenance +if ($setting->getValue('maintenance')) { + $log->logInfo('Cronjobs disabled due to pool maintenance'); + $monitoring->endCronjob($cron_name, 'E0083', 2, true, false); +} + // Check if our cron is activated if ($monitoring->isDisabled($cron_name)) { $log->logFatal('Cronjob is currently disabled due to errors, use -f option to force running cron.'); diff --git a/include/classes/monitoring.class.php b/include/classes/monitoring.class.php index f6f4e14db..e6a1df64c 100644 --- a/include/classes/monitoring.class.php +++ b/include/classes/monitoring.class.php @@ -131,7 +131,7 @@ public function endCronjob($cron_name, $msgCode, $exitCode=0, $fatal=false, $mai $this->setErrorMessage('Failed to send mail notification'); } if ($fatal) { - if ($exitCode != 0) $this->setStatus($cron_name . "_disabled", "yesno", 1); + if ($exitCode == 1) $this->setStatus($cron_name . "_disabled", "yesno", 1); exit($exitCode); } } diff --git a/include/config/error_codes.inc.php b/include/config/error_codes.inc.php index c668b5658..f7a8d7a87 100644 --- a/include/config/error_codes.inc.php +++ b/include/config/error_codes.inc.php @@ -78,3 +78,4 @@ $aErrorCodes['E0080'] = 'No new unaccounted shares since last run'; $aErrorCodes['E0081'] = 'Failed to insert new block into database'; $aErrorCodes['E0082'] = 'Block does not supply any usable confirmation information'; +$aErrorCodes['E0083'] = 'Maintenance mode enabled, skipped'; diff --git a/templates/bootstrap/admin/monitoring/default.tpl b/templates/bootstrap/admin/monitoring/default.tpl index 83b353a8d..325caea89 100644 --- a/templates/bootstrap/admin/monitoring/default.tpl +++ b/templates/bootstrap/admin/monitoring/default.tpl @@ -25,6 +25,8 @@ {if $event.type == 'okerror'} {if $event.value == 0} OK + {else if $event.value == 2} + WARN {else} ERROR {/if}