4

Tomcat 6 を使用して、アプリケーションの ActiveMQ ベースの Java バックエンドを提供しています。最近、この製品のサーバー側コンポーネントの継続的配置ソリューションを実装する方法を検討しています。


1. MSI インストーラーを仮想マシンに投入する
2. Tomcat を停止
する 3. インストーラーを実行する
4. Tomcat を起動する
5. サーバーが実行されていることをテストする

Tomcat のシャットダウン手順を除いて、これをすべて行うことができます。私が直面している問題は、Tomcat のシャットダウンが常に適切であるとは限らないことです。そのため、サーバーを強制的にシャットダウンできる必要があります。Tomcat をサービスとして実行するかどうかについては、オープンです。
WindowsでTomcat 6をシャットダウンする方法に関する情報はありますか? パラメータの使用に関するドキュメントを見たことがあり-forceますが、これは不完全で、Unix システムを対象としています。

提供できる情報は大歓迎です。


編集: マシンで実行されている Java プロセスは Tomcat だけではない可能性があります。

4

3 に答える 3

5

サービスとして実行せず、Tomcat が実行中の唯一の Java アプリケーションである場合は、taskkill を使用できます。トリックtaskkill /F /IM java.exeを行う必要があります。

Tomcat に関する限り、Tomcat プロセスの強制終了は安全であることに注意してください。実行中のアプリケーションはそれほど寛容ではないかもしれませんが、それはあなたのアプリなので、何が安全で何がそうでないかを知ることができます.

于 2012-05-15T07:38:01.027 に答える
1

もう 1 つの答え (taskkill を使用) は適切ですが、関心のあるサービスの名前について "sc queryex" の出力から PID 検索を取得し、その pid を取得します。

次に、Javaタスクを探すだけでなく、 taskkill /f /pid {pid} です。

これを行うには、Groovy スクリプトを使用する必要がありました。powershell が得意な場合は、より良い結果が得られる可能性があります。

于 2014-05-14T20:43:07.113 に答える
0

次のバッチ コマンドは、ポート 8080 で Windows サーバー上で実行されている tomcat に対して機能します。

@echo off

FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| findstr :8080') DO @ECHO Unable to stop Tomcat timely..Kill process %%P
FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| findstr :8080') DO call TaskKill.exe /f /PID %%P
于 2016-10-13T19:48:51.870 に答える