Tomcat 7没有关闭,进程一直在运行?

vis*_*hal 10 java tomcat

我开始使用tomcat 7,

cd /opt/tomcat7/bin    
$/opt/tomcat7/bin ./startup.sh
Run Code Online (Sandbox Code Playgroud)

它显示进程正在运行

root     23206  130  3.4 1323956 572880 pts/2  Sl   07:58   1:05 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dspring.profiles.active=mongo1,maxListenersAllowed -DST_SERVER=mongo1 -Djava.endorsed.dirs=/opt/tomcat7/endorsed -classpath /opt/tomcat7/bin/bootstrap.jar:/opt/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat7 -Dcatalina.home=/opt/tomcat7 -Djava.io.tmpdir=/opt/tomcat7/temp org.apache.catalina.startup.Bootstrap start
Run Code Online (Sandbox Code Playgroud)

如果我使用它关闭它

$/opt/tomcat7/bin ./shutdown.sh
Run Code Online (Sandbox Code Playgroud)

它给出了这个信息

Using CATALINA_BASE:   /opt/tomcat7
Using CATALINA_HOME:   /opt/tomcat7
Using CATALINA_TMPDIR: /opt/tomcat7/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat7/bin/bootstrap.jar:/opt/tomcat7/bin/tomcat-juli.jar
Run Code Online (Sandbox Code Playgroud)

但如果我检查上面的过程,它仍会显示它正在运行.Tomcat没有关闭.我也尝试使用root用户,但仍然没有成功.

Manully我可以杀死进程,但我想创建部署脚本,所以想要使用shutdown.sh和startup.sh来做

如果我尝试使用同样的事情

/opt/tomcat7/bin/catalina.sh start
/opt/tomcat7/bin/catalina.sh stop
Run Code Online (Sandbox Code Playgroud)

日志

Jul 23, 2014 8:26:17 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/i386:/lib:/usr/lib
Jul 23, 2014 8:26:18 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8081"]
Jul 23, 2014 8:26:18 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jul 23, 2014 8:26:18 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 361 ms
Jul 23, 2014 8:26:18 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jul 23, 2014 8:26:18 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.53
Jul 23, 2014 8:26:18 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /opt/tomcat7/webapps/docs
Jul 23, 2014 8:26:18 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /opt/tomcat7/webapps/manager
Jul 23, 2014 8:26:18 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /opt/tomcat7/webapps/ROOT
Jul 23, 2014 8:26:18 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /opt/tomcat7/webapps/examples
Jul 23, 2014 8:26:18 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /opt/tomcat7/webapps/host-manager
Jul 23, 2014 8:26:18 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /opt/tomcat7/webapps/target
Jul 23, 2014 8:26:18 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8081"]
Jul 23, 2014 8:26:18 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jul 23, 2014 8:26:18 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 862 ms
Jul 23, 2014 8:26:42 AM org.apache.catalina.core.StandardServer await
INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
Jul 23, 2014 8:26:42 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8081"]
Jul 23, 2014 8:26:42 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
Jul 23, 2014 8:26:42 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Jul 23, 2014 8:26:42 AM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8081"]
Jul 23, 2014 8:26:42 AM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
Jul 23, 2014 8:26:42 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8081"]
Jul 23, 2014 8:26:42 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]
Run Code Online (Sandbox Code Playgroud)

vza*_*llo 11

您可以通过PID强制关闭.

编辑

..tomcat/bin/catalina.sh
Run Code Online (Sandbox Code Playgroud)

并设置

CATALINA_PID=path
Run Code Online (Sandbox Code Playgroud)

变量到本地路径.

CATALINA_PID

(可选)当使用start(fork)时,应该包含catalina启动java进程的pid的文件的路径

然后你可以用-force旗帜关闭Tomcat

../tomcat/bin/shutdown.sh -force
Run Code Online (Sandbox Code Playgroud)

如果脚本无法停止Tomcat,通常会使用a kill来通过PID停止进程.

更新:

根据Joshua Taylor的评论,存储运行tomcat的其他变量的推荐方法是setenv.*脚本.

看一下(3.4)在运行tomcat的tomcat中使用"setenv"脚本(可选,推荐)部分

https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt

  • 请注意,catalina.bat说:**不要在此脚本中设置变量.而是将它们放入CATALINA_BASE/bin中的脚本setenv.sh中,以使您的自定义分开.**.应该在那里设置CATALINA_PID. (2认同)