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}