web-dev-qa-db-ja.com

コマンドラインからWebアプリケーションTomcatを停止する

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

19
Michael Küller

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

12
Sam

これを試してください Tomcat-managerと呼ばれるコマンドラインスクリプト 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と通信するため、「ローカル」で、つまりlocalhostを介して、またはTomcatインスタンスがアクセス可能な場所から機能します。

12
kotfu

別の方法は、CURLを使用することです。私の場合、WGETがインストールされていない企業のWindowsマシンを使用しています。 CURLは持っていますが、GIT BASH端末から使用できます。

Tomcatで実行されているアプリケーションを一覧表示するには、次のコマンドを実行します(user:passwordを使用)。

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

次に、「myapp」という名前のアプリケーションを停止するには

curl --user admin:admin http://localhost:8080/manager/text/stop?path=/myapp
10
MattC

アプリケーションの停止と起動には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
9

Tomcatアプリケーションを停止するには3つの方法があります

  1. ローカルアクセスがあれば、もちろんプロセスを停止することができます。これはTomcatを完全に停止します
  2. ローカルアクセスおよびリモートアクセスを使用すると、server.xml(デフォルト= 8005)で定義された「シャットダウンポート」にパスワードでアクセスできます。このソケットを開いてパスワードを送信すると、Tomcatは完全にシャットダウンします。
  3. あなたはサムのアドバイスに従います。
2
MJB