問題タブ [shutdown-hook]
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 - Java アプリケーションで Windows ログアウト イベントを検出する
ユーザーのログアウトやその他の Windows イベントをリッスンするために Java で使用できるライブラリはありますか? (複数のプラットフォームに対応していればなおさらです!)
何年も前にこの種のライブラリについて読んだことを覚えていますが、今は見つけられないようです。Python と win32ts を使用して、本質的に同じことを行う他のスレッドを見てきました。
また、無料および/またはオープンソースである場合も優れています。
ありがとう。
注: using の候補ソリューションは、Runtime.getRuntime().addShutdownHook(Thread)
では正しく機能しませんjavaw
。私はまだ javaw で動作するソリューションを探しています。Java バグ ID 4486580および4302814を参照してください。ありがとう --cam
java - Javaでのシャットダウンフックの便利な例は?
私は、Javaアプリケーションが堅牢になるために合理的な手順を踏んでいることを確認しようとしています。その一部には、正常にシャットダウンすることが含まれます。私はシャットダウンフックについて読んでいますが、実際にそれらを使用する方法を実際に理解していません。
そこに実用的な例はありますか?
以下のような非常に単純なアプリケーションがあり、ファイルに10から1行に、100のバッチで数値を書き込み、プログラムが中断された場合に特定のバッチが終了することを確認したいとします。シャットダウンフックを登録する方法はわかりますが、それをアプリケーションに統合する方法がわかりません。助言がありますか?
javascript - Flex ExternalInterface が Safari で起動しない (他の場所で動作する!)
JavaScript / Flex ExternalInterface を適切に動作させるために他にも質問があることは知っていますが、私が思うのは奇妙なものです。Safari (Mac)を除くすべてのブラウザで完全に動作します。Chrome、IE、Firefox - すべて問題ありませんが、Safari は起動しません。以下にコードをコピーしましたが、Safari pls で動作しない理由がわかる方はいますか?
(「よろしいですか」ダイアログウィンドウは Safari に表示されますが、Flex アプリのメソッドは呼び出されません)
乾杯アレックス
フレックスコード:
JavaScript コード:
vbscript - windows-scripting-host を使用したシャットダウン フック
このリンクでは、VB を使用してシャットダウン フックを実装する方法について説明しています。私の質問は、Windows Script Host/Windows Scripting Host を使用してそのようなことを行うことができるかということです。
ご意見をお待ちしております。いくつかのコード スニペットを含めることができます。
php - スクリプトがコマンドラインから強制終了されたときに起動するPHPのregister_shutdown_function?
cronプロセスがコマンドラインから(Ctrl + cを介して)またはkillコマンドで強制終了されたときに関数を呼び出すことは可能ですか?
試しregister_shutdown_function()
ましたが、スクリプトが強制終了されたときに呼び出されないようですが、スクリプトが正常に終了すると呼び出されます。
結果をファイルに記録し、cronインスタンスが自動的に強制終了されたとき(つまり、実行時間が長すぎるとき)にデータベース値を更新しようとしています。
java - Java アノテーション処理: ラウンドが最後のラウンドかどうかを知るにはどうすればよいですか?
を拡張する場合AbstractProcessor
、 をオーバーライドする可能性がありますが、すべてのラウンドが処理さinit(...)
れた後に呼び出される「反対の」メソッドはありません。
これは問題です。各ラウンドで収集した情報を同じファイルに追加する必要がある場合、最後のラウンドがいつだったかを知ることができないため、ファイルを閉じることができません。そのため、ファイルは閉じられず、空のままです。
シャットダウン フックを使用しても機能しません。フックは呼び出されません。
何か案は?
java - jvm: シャットダウン フック中に OOM が原因でプロセスがシャットダウンしていることを確認できますか?
Java (1.6) で実行されている重要なプロセスがあり、シャットダウン フックが登録されています。OOM の問題が発生した場合 (問題の詳細については以下を参照)、プロセスが突然停止し、ログが取得されず、catch(Throable x) が例外をキャッチしていません。
しかし、シャットダウンフックは機能します。したがって、厄介な OOM が原因でプロセスがシャットダウンしようとしていることを知る方法があれば、終了する前に必要な情報をログに記録できます。
これを行う方法はありますか?
OOM について: 私が言ったようにキャッチされないため、何が例外なのかわかりません。でプロセスを開始するため、OOM であることはわかっています。
ヒープダンプファイルを取得します。それ以外の場合、例外がキャッチされ、ava.lang.OutOfMemoryError: GC オーバーヘッド制限を超えました。しかし、それが常に当てはまるかどうかはわかりません。
編集:
明確でない場合: OOM はいくつかのシナリオで正当な理由で発生する可能性があるため、防止しようとしているわけではありません。アプリのログ ファイルで明確にしていることを確認したいだけです。
私の質問は次のとおりです。シャットダウンフックにいる間にOOMが原因でプロセスがシャットダウンしていることを確認することは可能ですか?
これをプログラムで同じプロセスから行う必要があります。
今のところ、最善の方法は、最近の日付で process_.hprof の java_pid_pid (私は pid を知っています) のヒープ ダンプ ファイルが存在するかどうかを確認し、OOM があったと推測することです。使用可能なメモリが非常に少ない場合は、Runtime.getRuntime().freeMemory() を試して問題を報告できると思いますが、プロセスがシャットダウンしているときに、すでに多くのメモリが解放されている可能性があります。上がベストだと思います。
ant - Antビルドシャットダウン-CtrlC
テストスイートを実行するために使用する一連のantタスクがありますが、これらのテストの1つがフリーズし、テストスイート全体がハングすることがあります。シャットダウンハンドラーを追加したので、Ctrl+ Cantを押すと正常にシャットダウンし、最終テストが実行されていないとマークされたレポートが表示されます。(これらは統合テストであり、何時間も実行できるため、これは重要です)これは、シャットダウンフックが呼び出されていないWindowsを除いてうまく機能します。あらゆる種類の入力に応答して正常にシャットダウンする方法はありますか?
php - コンテンツ配信後のコードを実行するための Symfony register_shutdown_function / destroy と同等のものはありますか?
register_shutdown_function が以前どのように機能していたかなど、ユーザーに応答が送信された後にさまざまなことを行う必要があります。
私は sfShutdownPlugin で遊んだことがあります。これは register_shutdown_function を使用するだけです。デストラクタ (アクションのみ) の使用も調べましたが、Symfony はそれをあまり好まないようで、postExecute メソッドはまだコンテンツの前に発生します。送信されます。
java - Windowsサービスの実行、およびcobertura
coberturaでWindowsサービスを実行しようとしています。唯一の問題は、シャットダウンフックが実行されたときにcoberturaが結果を報告することです。これらの結果のコードを直接変更することはできないので、JavaアプリケーションをWindowsサービスとして実行し、それでもcoberturaの結果を収集できるかどうか疑問に思いました。コードをインストルメントしてクラスパスに追加しましたが、レポートしても何も得られません。トレースファイルを表示すると、cobertura情報のロード/保存に失敗します。これにより、シャットダウンフックが実行されることはないと信じるようになります。そうしないと、結果が得られます。
助けてくれてありがとう!