2012-06-18 53 views

回答

10

我所知道的最简单的方法是安装Tomcat管理器Web应用程序,记下用于停止应用程序的URL,并且该URL为wget

+0

这是正确的答案:如果你想停止一个单独的webapp,那么你将不得不使用Tomcat的内部API来执行它或使用JMX。管理器Web应用程序都是为您想要做的所有事情设置的,并且也很容易为经理Web应用程序配置安全性。 –

+1

我的停止网址应该包含“org.apache.catalina.filters.CSRF_NONCE”令牌。这使得这种方法变得复杂。 – Soid

+0

Kotfu的答案更好的详细说明了这一点。 –

2

有三种方法可以停止Tomcat应用

  1. 随着本地接入当然你也可以只是停止进程。这完全阻止了tomcat
  2. 通过本地和远程访问,您可以访问server.xml(default = 8005)中定义的“关闭端口”(使用其密码)。如果你打开一个套接字并发送密码,tomcat将完全关闭。
  3. 您可以按照山姆的建议,让您具有选择性。
+0

完全停止tomcat并不是我的目标。我确实想要有选择性,因为我不想停止任何并行运行的其他应用程序。 –

+0

然后sam的建议是正确的。请注意,应用程序服务器通过取消部署/重新部署方案泄漏内存非常容易。 – MJB

12

试试这个叫做tomcat-manager的command-line script for managing tomcat。它需要Python,但允许您从Unix外壳做的东西,如:

$ tomcat-manager --user=admin --password=newenglandclamchowder \ 
> http://localhost:8080/manager/ stop /myapp 

和:

$ tomcat-manager --user=admin --password=newenglandclamchowder \ 
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war 

因为它通过HTTP会谈到tomcat,它的工作原理“本地”,即通过本地主机,或者从你的tomcat实例的任何地方访问。

4

我使用wget来停止和启动应用程序。 tomcat-user.xml中的用户必须具有管理员脚本角色。

为Tomcat 5/6:

wget "http://<user>:<password>@<servername>:<port>/manager/stop?=/<application context>" -O - -q 
wget "http://<user>:<password>@<servername>:<port>/manager/start?=/<application context>" -O - -q 

由于TOMCAT 7(7.0.62我安装的),你有经理后添加/text/

wget "http://<user>:<password>@<servername>:<port>/manager/text/stop?path=/<application context>" -O - -q 
wget "http://<user>:<password>@<servername>:<port>/manager/text/start?path=/<application context>" -O - -q 
2

另一种方法是使用卷曲。就我而言,我在一个没有WGET的公司Windows机器上。我确实有CURL,可以通过GIT BASH终端使用它。

要列出Tomcat上运行的应用程序,我运行以下(含用户名:密码)

curl --user admin:admin http://localhost:8080/manager/text/list 

然后停止名为“MYAPP”

curl --user admin:admin http://localhost:8080/manager/text/stop?path=/myapp 
相关问题