From 9cdf9d9ee39bade1b6c242ca4fb458a1de2c76a7 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Tue, 16 Jul 2013 10:06:24 -0400 Subject: [PATCH] - Display/email reason for service restart/reload failure (if init script doesn't suppress error messages). --- server/plugins-available/apache2_plugin.inc.php | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 5d4e502..0c6ed54 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -247,6 +247,7 @@ //* Write the key file, if field is empty then import the key into the db if(trim($data["new"]["ssl_key"]) != '') { $app->system->file_put_contents($key_file2,$data["new"]["ssl_key"]); + $app->system->chmod($key_file2,0400); } else { $ssl_key2 = $app->db->quote($app->system->file_get_contents($key_file2)); /* Update the DB of the (local) Server */ @@ -1475,7 +1476,8 @@ $apache_online_status_before_restart = $this->_checkTcp('localhost',80); $app->log('Apache status is: '.$apache_online_status_before_restart,LOGLEVEL_DEBUG); - $app->services->restartService('httpd','restart'); + $retval = $app->services->restartService('httpd','restart'); // $retval['retval'] is 0 on success and > 0 on failure + $app->log('Apache restart return value is: '.$retval['retval'],LOGLEVEL_DEBUG); // wait a few seconds, before we test the apache status again $apache_online_status_after_restart = false; @@ -1487,9 +1489,10 @@ } //* Check if apache restarted successfully if it was online before $app->log('Apache online status after restart is: '.$apache_online_status_after_restart,LOGLEVEL_DEBUG); - if($apache_online_status_before_restart && !$apache_online_status_after_restart) { - $app->log('Apache did not restart after the configuration change for website '.$data['new']['domain'].' Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN); + if($apache_online_status_before_restart && !$apache_online_status_after_restart || $retval['retval'] > 0) { + $app->log('Apache did not restart after the configuration change for website '.$data['new']['domain'].'. Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN); $app->system->copy($vhost_file,$vhost_file.'.err'); + if(is_array($retval['output']) && !empty($retval['output'])) $app->log('Reason for Apache restart failure: '.implode("\n", $retval['output']),LOGLEVEL_WARN); if(is_file($vhost_file.'~')) { //* Copy back the last backup file $app->system->copy($vhost_file.'~',$vhost_file); @@ -2766,8 +2769,10 @@ $app->log('Removed client directory: '.$client_dir,LOGLEVEL_DEBUG); } - $this->_exec('groupdel client'.$client_id); - $app->log('Removed group client'.$client_id,LOGLEVEL_DEBUG); + if($app->system->is_group('client'.$client_id)){ + $this->_exec('groupdel client'.$client_id); + $app->log('Removed group client'.$client_id,LOGLEVEL_DEBUG); + } } } -- Gitblit v1.9.1