diff --git a/cronjobs/shared.inc.php b/cronjobs/shared.inc.php
index 1794f76b..b16e0c3e 100644
--- a/cronjobs/shared.inc.php
+++ b/cronjobs/shared.inc.php
@@ -69,6 +69,12 @@ $log->LogDebug('Starting ' . $cron_name);
// 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 f6f4e14d..e6a1df64 100644
--- a/include/classes/monitoring.class.php
+++ b/include/classes/monitoring.class.php
@@ -131,7 +131,7 @@ class Monitoring extends Base {
$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 c668b565..f7a8d7a8 100644
--- a/include/config/error_codes.inc.php
+++ b/include/config/error_codes.inc.php
@@ -78,3 +78,4 @@ $aErrorCodes['E0079'] = 'Wallet does not cover payouts total amount';
$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 83b353a8..325caea8 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}