diff options
Diffstat (limited to 'config/nut')
-rw-r--r-- | config/nut/nut.inc | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/config/nut/nut.inc b/config/nut/nut.inc index dae2269e..e0ca9d30 100644 --- a/config/nut/nut.inc +++ b/config/nut/nut.inc @@ -126,7 +126,7 @@ if (!$post['remotename']) { $input_errors[] = 'You must specify a name in the \'Remote UPS Name\' field'; } - if ($post['remotename'] && !preg_match("/^[a-zA-Z0-9-_]+$/", $post['name'])) { + if ($post['remotename'] && !preg_match("/^[a-zA-Z0-9-_]+$/", $post['remotename'])) { $input_errors[] = 'Only [Aa-Zz], [0-9], and [-_] accepted in the \'Remote UPS Name\' field'; } if (!$post['remoteaddr'] || !is_ipaddr($post['remoteaddr'])) { @@ -498,8 +498,6 @@ EOD; global $config; global $input_errors; - config_lock(); - stop_service("nut"); /* create state path */ @@ -514,13 +512,13 @@ EOD; $return = sync_package_nut_snmp(); } - if ($return && $_POST['monitor']) { - /* only start if changing settings as we have a startup script for system boot */ + if ((!platform_booting()) && (nut_config('monitor'))) { + /* only start if enabled and system is not booting */ /* this prevents service from starting / stopping / starting on boot */ log_error("[nut] INFO: Starting service"); start_service("nut"); - if ((int)exec('/bin/pgrep upsmon | /usr/bin/wc -l') == 0) { + if (!is_process_running('upsmon')) { log_error("[nut] ERROR: Service failed to start: check configuration."); } } elseif (!$return && file_exists(NUT_RCFILE)) { @@ -542,7 +540,5 @@ EOD; exec('/bin/rm -rf /var/db/nut'); conf_mount_ro(); } - - config_unlock(); } ?> |