Frank Rosner created ZEPPELIN-815: ------------------------------------- Summary: Don't start the zeppelin runner in a child process when starting zeppelin.sh Key: ZEPPELIN-815 URL: https://issues.apache.org/jira/browse/ZEPPELIN-815 Project: Zeppelin Issue Type: Improvement Reporter: Frank Rosner
h3. Problem We are trying to put a Zeppelin on top of our Spark cluster managed by [Nomad|https://www.nomadproject.io/]. Nomad manages to start Zeppelin instances, but it cannot stop them. The reason is that the last command in {{zeppelin.sh}} creates a child process but does not communicate the signals properly: {code} $(exec $ZEPPELIN_RUNNER $JAVA_OPTS -cp $ZEPPELIN_CLASSPATH_OVERRIDES:$CLASSPATH $ZEPPELIN_SERVER "$@") {code} When Nomad is now sending a SIGINT to zeppelin.sh, it still waits for Java to exit which will not happen because it does not tell it to exit. h3. Proposed Solutions h4. No Child Process Don't spawn a new child process, so that the signal is directly sent to the runner: {code} exec $ZEPPELIN_RUNNER $JAVA_OPTS -cp $ZEPPELIN_CLASSPATH_OVERRIDES:$CLASSPATH $ZEPPELIN_SERVER "$@" {code} h4. Send the Signal Send the signal using a [combination of trap, kill and wait|http://unix.stackexchange.com/questions/146756/forward-sigterm-to-child-in-bash]. -- This message was sent by Atlassian JIRA (v6.3.4#6332)