|
@@ -55,6 +55,9 @@ if ambari_provider_module is not None:
|
|
|
|
|
|
jvm_args = os.getenv('AMBARI_JVM_ARGS', '-Xms512m -Xmx2048m')
|
|
jvm_args = os.getenv('AMBARI_JVM_ARGS', '-Xms512m -Xmx2048m')
|
|
|
|
|
|
|
|
+ENV_FOREGROUND_KEY = "AMBARI_SERVER_RUN_IN_FOREGROUND"
|
|
|
|
+IS_FOREGROUND = ENV_FOREGROUND_KEY in os.environ and os.environ[ENV_FOREGROUND_KEY].lower() == "true"
|
|
|
|
+
|
|
SERVER_START_CMD = "{0} " \
|
|
SERVER_START_CMD = "{0} " \
|
|
"-server -XX:NewRatio=3 " \
|
|
"-server -XX:NewRatio=3 " \
|
|
"-XX:+UseConcMarkSweepGC " + \
|
|
"-XX:+UseConcMarkSweepGC " + \
|
|
@@ -63,7 +66,7 @@ SERVER_START_CMD = "{0} " \
|
|
"{1} {2} " \
|
|
"{1} {2} " \
|
|
"-cp {3} "\
|
|
"-cp {3} "\
|
|
"org.apache.ambari.server.controller.AmbariServer " \
|
|
"org.apache.ambari.server.controller.AmbariServer " \
|
|
- "> {4} 2>&1 || echo $? > {5} &"
|
|
|
|
|
|
+ "> {4} 2>&1 || echo $? > {5}"
|
|
SERVER_START_CMD_DEBUG = "{0} " \
|
|
SERVER_START_CMD_DEBUG = "{0} " \
|
|
"-server -XX:NewRatio=2 " \
|
|
"-server -XX:NewRatio=2 " \
|
|
"-XX:+UseConcMarkSweepGC " + \
|
|
"-XX:+UseConcMarkSweepGC " + \
|
|
@@ -72,7 +75,11 @@ SERVER_START_CMD_DEBUG = "{0} " \
|
|
"server=y,suspend={6} " \
|
|
"server=y,suspend={6} " \
|
|
"-cp {3} " + \
|
|
"-cp {3} " + \
|
|
"org.apache.ambari.server.controller.AmbariServer " \
|
|
"org.apache.ambari.server.controller.AmbariServer " \
|
|
- "> {4} 2>&1 || echo $? > {5} &"
|
|
|
|
|
|
+ "> {4} 2>&1 || echo $? > {5}"
|
|
|
|
+
|
|
|
|
+if not IS_FOREGROUND:
|
|
|
|
+ SERVER_START_CMD += " &"
|
|
|
|
+ SERVER_START_CMD_DEBUG += " &"
|
|
|
|
|
|
SERVER_START_CMD_WINDOWS = "{0} " \
|
|
SERVER_START_CMD_WINDOWS = "{0} " \
|
|
"-server -XX:NewRatio=3 " \
|
|
"-server -XX:NewRatio=3 " \
|
|
@@ -199,7 +206,7 @@ def wait_for_server_start(pidFile, scmStatus):
|
|
else:
|
|
else:
|
|
save_main_pid_ex(pids, pidFile, [locate_file('sh', '/bin'),
|
|
save_main_pid_ex(pids, pidFile, [locate_file('sh', '/bin'),
|
|
locate_file('bash', '/bin'),
|
|
locate_file('bash', '/bin'),
|
|
- locate_file('dash', '/bin')], True)
|
|
|
|
|
|
+ locate_file('dash', '/bin')], True, IS_FOREGROUND)
|
|
|
|
|
|
|
|
|
|
def server_process_main(options, scmStatus=None):
|
|
def server_process_main(options, scmStatus=None):
|
|
@@ -289,6 +296,9 @@ def server_process_main(options, scmStatus=None):
|
|
# The launched shell process and sub-processes should have a group id that
|
|
# The launched shell process and sub-processes should have a group id that
|
|
# is different from the parent.
|
|
# is different from the parent.
|
|
def make_process_independent():
|
|
def make_process_independent():
|
|
|
|
+ if IS_FOREGROUND: # upstart script is not able to track process from different pgid.
|
|
|
|
+ return
|
|
|
|
+
|
|
processId = os.getpid()
|
|
processId = os.getpid()
|
|
if processId > 0:
|
|
if processId > 0:
|
|
try:
|
|
try:
|
|
@@ -322,5 +332,8 @@ def server_process_main(options, scmStatus=None):
|
|
|
|
|
|
if scmStatus is not None:
|
|
if scmStatus is not None:
|
|
scmStatus.reportStarted()
|
|
scmStatus.reportStarted()
|
|
|
|
+
|
|
|
|
+ if IS_FOREGROUND:
|
|
|
|
+ procJava.communicate()
|
|
|
|
|
|
return procJava
|
|
return procJava
|