From 49441bdd0f3ff75d5092d5b832b97ea722a66363 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Fri, 01 Jul 2016 03:53:30 -0400 Subject: [PATCH] Merge branch 'stable-3.1' --- server/lib/classes/system.inc.php | 35 ++++++++++++++++++++++++++++++----- 1 files changed, 30 insertions(+), 5 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 2c36c38..978a891 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1803,7 +1803,9 @@ function mount_backup_dir($backup_dir, $mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'){ global $app, $conf; - + + if($this->is_mounted($backup_dir)) return true; + $mounted = true; if ( is_file($mount_cmd) && is_executable($mount_cmd) && @@ -1856,23 +1858,46 @@ } - function getinitcommand($servicename, $action, $init_script_directory = ''){ + function _getinitcommand($servicename, $action, $init_script_directory = '', $check_service) { global $conf; // 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'; + if ($check_service) { + exec("systemctl is-enabled ".$servicename." 2>&1", $out, $ret_val); + } + if ($ret_val == 0 || !$check_service) { + 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); - return $init_script_directory.'/'.$servicename.' '.$action; + if($check_service && is_executable($init_script_directory.'/'.$servicename)) { + return $init_script_directory.'/'.$servicename.' '.$action; + } + if (!$check_service) { + return $init_script_directory.'/'.$servicename.' '.$action; + } } - + + function getinitcommand($servicename, $action, $init_script_directory = '', $check_service=false) { + if (is_array($servicename)) { + foreach($servicename as $service) { + $out = $this->_getinitcommand($service, $action, $init_script_directory, true); + if ($out != '') return $out; + } + } else { + return $this->_getinitcommand($servicename, $action, $init_script_directory, $check_service); + } + } + function getapacheversion($get_minor = false) { global $app; -- Gitblit v1.9.1