From a5bd6a8dd848f1c98986da02724ac5657b39e85f Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 22 Jun 2016 09:00:59 -0400 Subject: [PATCH] Merge branch 'stable-3.1' of git.ispconfig.org:ispconfig/ispconfig3 into 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