我开始使用tomcat 7,
cd /opt/tomcat7/bin
$/opt/tomcat7/bin ./startup.sh
显示进程正在运行
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
如果我使用
关闭它$/opt/tomcat7/bin ./shutdown.sh
它给出了这个消息
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
但是如果我检查上面的进程,它仍然显示它正在运行。 Tomcat 不会关闭。我也用 root 用户尝试过,但仍然没有成功。
我可以手动终止该进程,但我想创建部署脚本,因此想使用 shutdown.sh 和startup.sh 来完成它
如果我尝试使用
也会发生同样的情况/opt/tomcat7/bin/catalina.sh start
/opt/tomcat7/bin/catalina.sh stop
日志
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"]
可以通过PID强制关机。
编辑
..tomcat/bin/catalina.sh
并设置
CATALINA_PID=path
变量为本地路径。
CATALINA_PID
(可选)应包含 pid 的文件路径 catalina启动java进程,当使用start(fork)时
然后你可以使用
-force
标志关闭 Tomcat
../tomcat/bin/shutdown.sh -force
如果脚本无法正常停止 Tomcat,将使用
kill
通过 PID 来停止进程。
更新:
根据 Joshua Taylor 评论,存储运行 tomcat 的附加变量的推荐方法是 setenv.* 脚本。
查看 tomcat 运行文档中的 (3.4) 使用“setenv”脚本(可选,推荐)部分
如果您在Windows中,并且使用便携式tomcat,您可以使用nircmd程序工具,并通过标题控制台窗口关闭,而不是通过PID停止。 下载此工具后,只需执行以下操作:
nircmd.exe win close title "Tomcat"
我曾经遇到过由于错误的身份验证机制而导致页面运行无限重定向循环的不幸情况。
它最终减慢了整个服务器的速度,但也让我无法优雅地关闭它。最后我不得不像 vzamanillo 描述的那样使用蛮力。
问题在于,服务器进程中可能正在运行一些可疑的东西,而这些进程无法正常完成。
您是否设置了关闭端口? (在 /etc/tomcat9/conf/server.xml 中)
<Server port="9005" shutdown="SHUTDOWN">
转到conf文件夹,然后转到server.xml,然后更改端口