From bc04c3a563378372d8779dac9e307cbb00e12316 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 27 Oct 2014 16:36:19 +0100
Subject: [PATCH] - Added version detection for Ubuntu 14.10 - Fixed a problem
 with restart of services due to the fact that Ubuntu has upstart and systemd
 installed, but only upstart is working without errors.

---
 install/lib/install.lib.php              | 3 +++
 install/lib/installer_base.lib.php       | 8 ++++----
 server/lib/classes/monitor_tools.inc.php | 3 +++
 server/lib/classes/system.inc.php        | 8 ++++----
 4 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php
index 109b429b8b..9bd0e1d2bf 100644
--- a/install/lib/install.lib.php
+++ b/install/lib/install.lib.php
@@ -86,6 +86,9 @@ function get_distname() {
 			$mainver = array_filter($mainver);
 			$mainver = current($mainver).'.'.next($mainver);
 			switch ($mainver){
+			case "14.10":
+				$relname = "(Utopic Unicorn)";
+				break;
 			case "14.04":
 				$relname = "(Trusty Tahr)";
 				break;
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 938f8c30b2..300c64f58e 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -2306,15 +2306,15 @@ class installer_base {
 
 	public function getinitcommand($servicename, $action, $init_script_directory = ''){
 		global $conf;
-		// systemd
-		if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){
-			return 'systemctl '.$action.' '.$servicename.'.service';
-		}
 		// upstart
 		if(is_executable('/sbin/initctl')){
 			exec('/sbin/initctl version 2>/dev/null | /bin/grep -q upstart', $retval['output'], $retval['retval']);
 			if(intval($retval['retval']) == 0) return 'service '.$servicename.' '.$action;
 		}
+		// systemd
+		if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){
+			return 'systemctl '.$action.' '.$servicename.'.service';
+		}
 		// sysvinit
 		if($init_script_directory == '') $init_script_directory = $conf['init_scripts'];
 		if(substr($init_script_directory, -1) === '/') $init_script_directory = substr($init_script_directory, 0, -1);
diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index 19f69bb963..f4e4507c20 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -62,6 +62,9 @@ class monitor_tools {
 				$mainver = array_filter($mainver);
 				$mainver = current($mainver).'.'.next($mainver);
 				switch ($mainver){
+				case "14.10":
+					$relname = "(Utopic Unicorn)";
+					break;
 				case "14.04":
 					$relname = "(Trusty Tahr)";
 					break;
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index d227792771..aadfbf3e24 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1721,15 +1721,15 @@ class system{
 
 	function getinitcommand($servicename, $action, $init_script_directory = ''){
 		global $conf;
-		// systemd
-		if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){
-			return 'systemctl '.$action.' '.$servicename.'.service';
-		}
 		// upstart
 		if(is_executable('/sbin/initctl')){
 			exec('/sbin/initctl version 2>/dev/null | /bin/grep -q upstart', $retval['output'], $retval['retval']);
 			if(intval($retval['retval']) == 0) return 'service '.$servicename.' '.$action;
 		}
+		// systemd
+		if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){
+			return 'systemctl '.$action.' '.$servicename.'.service';
+		}
 		// sysvinit
 		if($init_script_directory == '') $init_script_directory = $conf['init_scripts'];
 		if(substr($init_script_directory, -1) === '/') $init_script_directory = substr($init_script_directory, 0, -1);
-- 
GitLab