複数のアプリを実行する PCI DSS 準拠の環境があり、サーバーを再起動せずに 1 つのアプリのみを再起動したいと考えています。どうやらこの環境では許可されていないため、マネージャーはありません。
コマンドラインから単一の Web アプリを再起動するにはどうすればよいですか?
複数のアプリを実行する PCI DSS 準拠の環境があり、サーバーを再起動せずに 1 つのアプリのみを再起動したいと考えています。どうやらこの環境では許可されていないため、マネージャーはありません。
コマンドラインから単一の Web アプリを再起動するにはどうすればよいですか?
パーティーに遅れたことは承知していますが、コマンド ラインからアプリをリロードするためにできるちょっとしたトリックは、アプリケーションの web.xml に移動して、単純にタッチすることです。
cd webapps/<webapp-name>/WEB-INF/
touch web.xml
tomcat は、このファイルの変更に気付くたびにアプリケーションをリロードします。単純にタッチすると、実際にはファイルが変更されず、タイムスタンプだけが変更されます。
これが私がそれを行う方法です:
${TOMCAT}/conf/tomcat-users.xml
。<user username="admin" password="secret" roles="manager-gui,manager-script"/>
そうしないと、クロスサイト リクエスト フォージェリ (CSRF) 保護のために 403 エラーが発生します。
または任意のコマンド ライン ツールを使用curl
して URl をフェッチします<yourserver>/manager/text/reload?path=/<context_path>
。
curl --user user:secret http://localhost:8080/manager/text/reload?path=/mypath
マネージャアプリケーションへのアクセスがなければ、それを行うことはできません。マネージャアプリケーションにアクセスでき、Webブラウザの代わりにコマンドラインを使用したい場合は、tomcat-managerと呼ばれるTomcatを管理するためのこのコマンドラインスクリプトを試すことができます。Pythonが必要ですが、次のようなUnixシェルから処理を実行できます。
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ reload /myapp
と:
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war
残念ながら、コマンドラインからこれを行う方法はないと思います。代わりに、Tomcatの別のインスタンスで再起動する必要がある単一のアプリケーションをホストする方法があるかどうかを確認して、他のアプリケーションに影響を与えずにそのインスタンスを再起動できるようにすることをお勧めします。