問題タブ [procrun]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - procrun でサービスが実行されていることを確認する
prunsrvを使用して Windows サービスを作成しています。プロセスのステータス (実行中、停止中) を照会できるかどうか、またはプロセスが存在するかどうかを尋ねたいと思います。また、Javaプログラムでpidファイルの内容を読みたいと思います。
java - Linuxマシンでprocrunを構成しますか?
私はprocrunを始めたばかりです。JavaアプリケーションをWindowsサービスとして実行する方法を誰かが提案できますか?可能であれば段階的に。
java - Apache Procrun - stop command not working
I'm having an issue with the "Apache Deamons Procrun" software. The start command works great and kicks off the program. The stop command always says "Could not find or load main class" except the class the stop command kicks off is the same class that is kicked off to start the program. All the stop command does is drop a control in a folder the program is watching.
Is procrun smart enough to know that if the java process ends, it will shut down as well? i'm having some issues with that as well sometimes.
Thanks,
java - apacheprocrunがサービスの開始に失敗する
編集
loaderDeamonインターフェイスを使用して、JavaアプリをWindowsサービスとしてインストールして実行しています。これを行うために、Apacheのprocrunサービスツール(tomcatでインストールされるものと同じもの)がサービスのインストールと実行を処理します。
最近、サービスマネージャを介してサービスを実行すると、サービスは実行中であると主張しますが、応答しません。ログは書き込まれず、アプリのクライアント側は通信できません。これにより、サービスが実際に実行されていないと思います。
ここに記載されているように、// TSコマンドを使用してprocrunを介してサービスを起動しようとしました:http://commons.apache.org/daemon/procrun.htmlこれはハングし、待機してもサービスを開始しません24時間まで。procrun自体は、キャプチャしたログを生成します。完全なログは以下に含まれています。ログについていくつか質問がありますが、サービスが開始されない理由が明らかになることを願っています。
- まず、「Javaワーカースレッドが終了しました... status = 6で開始」はスレッドの終了を示しますか?
- 次に、「すべてのスレッドが終了するのを待っています」という行に到達したときに、どのスレッドがまだ実行されていますか?
- 第三に、サービスを開始するときに潜在的に問題があることで目立つログに他に何かありますか?
このサービスは過去に正常に実行されましたが、Javaバージョン1.7.5へのアップグレード後に最近失敗しました。効果を上げてjava1.7.3に戻したので、言及する価値はありますが、jvmの変更は無関係であると思います。
効果なしで実行した手順:
- デバッグを使用してコンソールでサービスを実行する
- java SEバージョン1.7.5、1.7.3の指定
- デフォルトのjvm1.6.30を使用するだけで、指定はしません
- 広範なグーグルワーク
どんな助けやアイデアもありがたいです!ありがとう!
log4j - Procrun と log4 の構成
procrun
JavaプロセスのWindowsサービスを開始するために使用しています。サービスを開始することはできますが、セットアップした log4j 構成が機能していないようです。これは、作成するstderr
ファイルに表示されるものです。procrun
サービスをインストールするために指定するコマンドは次のとおりです。
%INSTALL_SERVICE_CMD% //IS//SERVICEAGENT --DisplayName="DispName" --Install=%SERVICE_EXE_HOME%\prunsrv.exe --LogPath=%INSTALLER_HOME% --LogLevel=Info --StdOutput=auto --StdError=auto --StartMode=Java --StopMode=Java --Jvm=auto --Startup=auto --JvmMx=512 ++JvmOptions=-XX:MaxPermSize=128m --StartPath=%START_CLASS_PATH%\ --Classpath=%CLASSPATH%;MyJar.jar --StartClass=com.jar.aa.MainEntry --StopClass=com.jar.aa.ExitEntry ++StopParams=--stop ++JvmOptions=-Dfile.encoding=UTF8 ++JvmOptions=-Dlog4j.configuration=log4j.properties ++JvmOptions=-Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
このインストール スクリプトと同じディレクトリに log4j プロパティを配置しました。
何が欠けているのか誰か教えてもらえますか? どんな助けでも大歓迎です。
ありがとう、
K
java - Apache デーモン procrun prunsrv Windows exe モードが機能しない
数年間、Procrun を使用して Java アプリをサービスに変換してきました (問題なく)。
また、サービスとして実行されているネイティブの Windows 実行可能ファイルもいくつかあります。今までは、Windows Management Instrumentation (WMI) を使用してこれらを定義していましたが、現在、これらのネイティブ exe にも Procrun を使用しようとしています... 残念ながら、サービスを開始できません (または少なくとも維持することができません)。ランニング)。
サービスは正しく作成されているようです。Prunsrvlog/stdout/stderr にはエラーが含まれていません。Apache/procrun と system/Services の両方の下にあるレジストリ キーは正常に作成されているようです。Windows サービス アプレットまたは Prunmgr モニターを使用してサービスを確認できます。しかし...サービスが開始済みとして表示されることはありません。Prunmgr からサービスを手動で開始しようとすると、「... 開始しようとしています」というポップアップが数秒間表示されますが、サービスは停止したままです。
Win Services アプレットから開始しようとすると、さらにポップアップが表示されます。サービスが開始および停止しました。一部のサービスは、使用しないと自動的に停止します」.
解決策のほとんどは自分で見つけました:
ネイティブ テスト プログラムを何らかの形で台無しにしてしまい、常に Windows サービス コントローラーとやり取りしていました...Procrun を使用する場合、ネイティブ プログラムは Windows Service Controllerに登録 (登録解除) しないでください。これは Procrun 自体によって処理されるためです。テスト サービスを修正した後、Procrun サービスを使用して開始および停止できました。
...しかし、いくつかの疑問が残ります。
- にスペースを含めてはならないことを示すいくつかのヒットを見つけましたが、ネイティブ実行可能ファイルに Procrun を使用する場合、 にスペースを含めて
serviceName
はならないことも (痛々しいほど) 発見しました。にスペースが含まれてdisplayName
いると、Windows サービス アプレットの [プロパティ] ページが開きません。何が原因なのかはわかりませんが、これは Java アプリケーションを使用している場合には当てはまりません。displayName
- サービスを自動開始するように設定しても (例: 経由
set PR_STARTUP=auto
)、「ネイティブ」サービスは開始されずinstall
、明示的な開始コマンド (例:bin\TestService start
) が必要です (ただし、「ネイティブ」サービスは再起動のたびに自動開始されます)。 ...これは、Javaアプリをラップする場合には適用されません...これらは、インストール時に自動起動します。
そして最後のアドバイス:set PR_xxx=
形式を使用してサービスのパラメーターを定義する場合、通常、スペースを含む値を引用符で囲んではいけません...これは、経験豊富な人々にとっては言うまでもありませんが、私はこれ :-(
この長い投稿の残りの部分は、主に歴史 (またはまれな関心のある個人) のためのものです。
サービスを定義するコード:
そして、後で発見したように、追加することを忘れないでください:
commons-daemon.log の結果:
TestService の stdout/stderr にはどちらも、"stdout/stderr initialized" という 1 行しか含まれてい
ません。 ProcRun の下のレジストリ キー:
SYSTEM\Services の下:
考えられることはすべて試しましたが、Service を実行できません:-(
さらに 2 つの注意点: 1. 最初にDisplayName
にスペースがありました。それらをアンダースコアに置き換えるまで、できませんでした。 Windows サービス アプレットの [プロパティ] ページを開くには!!!
2. ネイティブ exe には、Windows サービス コントローラーに登録するためのコードが用意されています(主に、Windows がシャットダウンされているときにクリーンな終了を有効にするため)。実行可能ファイルは " d.exe " (大文字と小文字を区別しません) で終わります
。StartImageに両方の形式 (つまり、TPShmSrvD.exe と TPShmSrv.exe) を使用しようとしましたが、役に立ちませんでした...
ジュール
java - procrun を正常にシャットダウンするには?
Apache commons デーモン - procrunを使用して Windows XP 32 ビット プラットフォームで Java アプリケーションを実行する場合、サービスを適切に停止するにはどうすればよいですか?
procrun のドキュメントを読み、サービスの登録中にタイムアウトを 120 秒に設定しました。これは意図したとおりに機能しません。上記の時間を待たずに Windows がシャットダウンします。
インターネットで検索すると、Windows サービスに構造があり、これがprocrunに含まれていることがわかりました。
問題は、procrun を使用してサービスがシャットダウンを受け入れるようにする方法です。
参考までに:以下の 3 つの方法のいずれかを使用してサービスを停止すると、正常に停止します
- ネットストップサービス名
- サービス名.exe停止
- サービス.msc
java - JVisualVMは--openpid引数を使用してプロセスに接続できません
私はwin-serviceとして実行されているアプリケーションを持っています(Apache-Procrunを使用)。そのアプリケーションをJVisualVMで監視したい。--openpid <PID>
皮肉なことに、古いJConsoleがなんとかそのアプリケーションに接続できたので、コマンドライン引数を使用して成功しませんでした。
%TMP%\hsperfdata_username
また、「JVisualVM-トラブルシューティングガイド」で説明されている-Directoryのすべての問題を確認しました。そのすべてが順調です。
JVisualVMでアプリを監視するにはどうすればよいですか?
java - Apache procrun を使用して NoClassDefFoundError (Eclipse で生成された jar) を受け取るが、コマンド ラインでは正常に動作する
アプリケーションを Eclipse から 1 つの大きなパッケージとしてエクスポートしたので、Eclipse ローダーが使用されます。install.bat ファイルを使用して procrun でインストールしました。最も重要な行を以下に示します。
明らかにもっと多くの機能があり、サービスは実行されます。ECGIServer.jar ファイル内のマニフェスト ファイルは次のとおりです。
リストするjarは他にもありますが、書くには多すぎます。とにかく、コマンド ラインで (ECGIServer.jar) を実行すると、うまく機能します。サービスとして実行すると、LunaProvider のインスタンスを作成しようとするまで実行されます。アプリケーションが LunaProvider のインスタンスを作成すると、次のようになります。
ご覧のとおり、LunaProvider は、私の Eclipse セットアップから取り込まれたばかりの ThridParty ライブラリーです。
java - procrun を使用した Windows サービスとしてサポートされていない major.minor バージョンの Java
Java アプリケーションを Windows サービスとして実行しようとしています。ここで言ったようにしました:http://web.archive.org/web/20090228071059/http://blog.platinumsolutions.com/node/234
およびhttp://commons.apache.org/daemon/procrun.html
そして、私はこの例外を受け取ります: