2012-06-18 13 views
12

私はtomcatサーバーにアプリケーションを自動的にデプロイするbashスクリプトを書いています。どのように私はbash /コマンドラインからアプリケーションを停止できますか?コマンドラインからWebアプリケーションtomcatを停止する

+0

という名前のアプリケーションを停止するには、Tomcatを停止しますかローカルまたはリモート? –

+0

私はちょうどそれをローカルで停止したい –

答えて

10

私が知っている最も簡単な方法は、Tomcatマネージャwebappをインストールし、アプリケーションを停止するためのURLを書き留め、そのURLにwgetを入れることです。

+0

これは正解です:個々のWebアプリケーションを停止する場合は、Tomcatの内部APIを使用してJMXを使用する必要があります。マネージャのwebappは、すべてあなたがやりたいことのために設定されているので、マネージャwebappのセキュリティも簡単に設定できます。 –

+1

停止URLに「org.apache.catalina.filters.CSRF_NONCE」トークンを含める必要があります。このアプローチは複雑です。 – Soid

+0

Kotfuさんの回答より良い詳細はこちら。 –

2

あなたはもちろん、単にプロセスを停止することができますローカルアクセスでTomcatアプリケーション

  1. を停止するには、3つの方法があります。これは完全にtomcatを停止します
  2. ローカルとリモートアクセスでは、パスワードでserver.xml(デフォルト= 8005)で定義された "シャットダウンポート"にアクセスできます。ソケットを開いてパスワードを送信すると、Tomcatは完全にシャットダウンします。
  3. あなたはsamのアドバイスに従います。これにより、あなたは選択的になることができます。
+0

完全にtomcatを止めることは私の目標ではありません。私は並行して実行されている他のアプリケーションを停止したくないので、選択的になりたいです。 –

+0

その後、samのアドバイスが正しいです。アプリケーションサーバーがデプロイメント/デプロイメントシナリオを使用してメモリをリークするのは非常に簡単です... – MJB

12

お試しくださいcommand-line script for managing tomcatはtomcat-managerと呼ばれています。これは、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の場合

:TOMCAT 7以来

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

(私のインストール用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

もう一つの方法は、CURLを使用することです。私の場合、私は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 
関連する問題