SLIDER-347 Slider script should handle the case where java is not in PATH variable
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/6afa8f97 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/6afa8f97 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/6afa8f97 Branch: refs/heads/feature/SLIDER-149_Support_a_YARN_service_registry Commit: 6afa8f978bb24acc99482a57c7d8a1f7bad0213a Parents: 31d70a3 Author: tedyu <yuzhih...@gmail.com> Authored: Sat Aug 23 13:12:58 2014 -0700 Committer: tedyu <yuzhih...@gmail.com> Committed: Sat Aug 23 13:15:29 2014 -0700 ---------------------------------------------------------------------- slider-assembly/src/main/scripts/slider | 3 ++- slider-assembly/src/main/scripts/slider.py | 21 ++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6afa8f97/slider-assembly/src/main/scripts/slider ---------------------------------------------------------------------- diff --git a/slider-assembly/src/main/scripts/slider b/slider-assembly/src/main/scripts/slider index caf275b..7172917 100755 --- a/slider-assembly/src/main/scripts/slider +++ b/slider-assembly/src/main/scripts/slider @@ -71,4 +71,5 @@ echo "" echo "command is java ${slider_jvm_opts} --classpath \"${slider_classpath}\" ${launcher} $@" echo "" echo "" -exec java ${slider_jvm_opts} ${launcher} $@ +type java >/dev/null 2>&1 || javabin=${JAVA_HOME}/bin +exec ${javabin}/java ${slider_jvm_opts} ${launcher} $@ http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/6afa8f97/slider-assembly/src/main/scripts/slider.py ---------------------------------------------------------------------- diff --git a/slider-assembly/src/main/scripts/slider.py b/slider-assembly/src/main/scripts/slider.py index e60bed3..db4b881 100644 --- a/slider-assembly/src/main/scripts/slider.py +++ b/slider-assembly/src/main/scripts/slider.py @@ -118,6 +118,22 @@ def runProcess(commandline): print errline + err.decode() return exe.returncode +def which(program): + def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + + fpath, fname = os.path.split(program) + if fpath: + if is_exe(program): + return program + else: + for path in os.environ["PATH"].split(os.pathsep): + path = path.strip('"') + exe_file = os.path.join(path, program) + if is_exe(exe_file): + return exe_file + + return None def java(classname, args, classpath, jvm_opts_list): """ @@ -131,7 +147,10 @@ def java(classname, args, classpath, jvm_opts_list): """ # split the JVM opts by space # java = "/usr/bin/java" - commandline = ["java"] + prg="java" + if which("java")==None: + prg=os.environ["JAVA_HOME"]+"/bin/java" + commandline = [prg] commandline.extend(jvm_opts_list) commandline.append("-classpath") commandline.append(classpath)