Я выполняю процесс кота этой командой в Python:
os.execve(cmd, [cmd, "run"], env)
Огибающие переменные наборы CATALINA_OPTS = -server -Xms512m -Xmx512m -Xss512k
Теперь то, когда я запускаю скрипт после процесса Java, показывают в PS, произведите:
java -server -Xms512m -Xmx512m -Xss512k org.apache.catalina.startup.Bootstrap start
Мой вопрос состоит в том, почему CATALINA_OPTS, разоблачаемые в выводе PS Java, обрабатывают даже при том, что CATALINA_OPTS является переменной среды?
Обычно сценарий catalina.sh вызывается через оболочку как сценарий sysvinit . Он загружает переменную среды и использует ее в качестве аргумента для Java-процесса, который в конечном итоге вызывает tomcat.
Я открыл скрипт catalina.sh
, чтобы прочитать код:
Нашел эту строку:
eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
Скрипт catalina.sh
вызывает java-процесс, передающий $ CATALINA_OPTS
аргументы Java-процесса.