为什么 CATALINA_OPTS 参数在运行 tomcat 时会显示在 java 进程中,即使它是一个环境变量

为什么 CATALINA_OPTS 参数在运行 tomcat 时会显示在 java 进程中,即使它是一个环境变量

我使用 python 中的这个命令运行 tomcat 进程:

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 是一个环境变量,为什么 CATALINA_OPTS 也会显示在 java 进程的 ps 输出中?

答案1

通常catalina.sh脚本通过包装器作为系统初始化脚本。它加载环境变量并将其用作最终调用 tomcat 的 java 进程的参数。

答案2

我打开catalina.sh脚本来读取代码:

找到这一行:

eval "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

catalina.sh脚本调用一个 Java 进程并将$CATALINA_OPTS参数传递给该 Java 进程。

相关内容