我们有一个使用SNMP的监控应用程序,我已经在我的tomcat服务器中启用SNMP,在bin/setenv.sh文件中有以下选项。
# # SNMP for Tomcat # JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.snmp.interface=10.101.21.31" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.snmp.port=1651" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.snmp.acl=false"
在tomcat启动时,没有任何问题都是干净的。 但是当我停止tomcat我得到这个错误。
[tomcat@webserver1 bin]$ ./catalina.sh stop JAVA_OPTS: %JAVA_OPTS% Using CATALINA_BASE: /opt/tomcat7.1 Using CATALINA_HOME: /opt/tomcat7.1 Using CATALINA_TMPDIR: /opt/tomcat7.1/temp Using JRE_HOME: /usr Using CLASSPATH: /opt/tomcat7.1/bin/bootstrap.jar:/opt/tomcat7.1/bin/tomcat-juli.jar Error: Failed to start SNMP adaptor with address: /10.101.21.31:1651 (Address already in use)
无论如何,我可以干净地阻止tomcat,而不是杀了它?
您应该使用CATALINA_OPTS而不是JAVA_OPTS 。 catalina.sh脚本很好地logging了差异:
# CATALINA_OPTS (Optional) Java runtime options used when the "start", # "run" or "debug" command is executed. # Include here and not in JAVA_OPTS all options, that should # only be used by Tomcat itself, not by the stop process, # the version command etc. # Examples are heap size, GC logging, JMX ports etc.
JAVA_OPTS被设置为%JAVA_OPTS%的事实也表明你有什么错误(可能是一个由win32 admin写的脚本)。