Currently the phoenix scripts in python start the java process via subprocess.call() or subprocess.popen() even when the java process has to run in the foreground, and there is no cleanup required.
I propose that in these cases, we start java via os.exec*(). This has the following advantages:
- There is no python process idling waiting for the java process to end, reducing process count and memory consumption
- Signal handling is simplified (signals sent to the starting script are received by the java process started)
- Return code handling is simplified (no need to check for and return error codes from java in the startup script)