問題タブ [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.

0 投票する
2 に答える
4098 参照

java - JVM は、halt を呼び出す前にシャットダウン フックの実行をどのくらいの時間許可しますか?

前の質問からのフォローアップ

前の質問を読んだことがある場合、代わりのタイトルは次のようになります
:

0 投票する
6 に答える
3725 参照

java - ShutdownHook をセットアップしてアプリケーションを終了する

次のコードがあります。

ユーザーのログインとログアウトを記録するための非常に単純なプログラムです。問題は、関数 main() の最後に到達するとプログラムが終了することです。

シャットダウン イベント フックを正しく使用していますか? 複雑な Windows サービスを作成したくありません。リモート接続された Windows セッションに使用されるため、非常に単純なアプリケーションでなければなりません。

ログインの終了を待つバックグラウンドについて何か提案はありますか?

0 投票する
3 に答える
10921 参照

java - Bat スクリプトから実行される Java アプリケーションの Windows シャットダウン フック

Java アプリケーションを実行するバット スクリプトがあります。その上で ctrl+c を押すと、アプリケーションは正常に終了し、すべてのシャットダウン フックが呼び出されます。ただし、bat スクリプトの cmd ウィンドウを閉じるだけでは、シャットダウン フックは呼び出されません。

これを解決する方法はありますか?おそらく、ウィンドウが閉じられたときに呼び出されたアプリケーションを終了する方法をバットスクリプトに伝える方法はありますか?

0 投票する
0 に答える
503 参照

windows - Delphi で Windows XPe のシャットダウン理由をどのように検出しますか?

次の手順で、Delphi 2009の Windows シャットダウン メッセージWMQueryEndSessionを正しくインターセプトしています。

この記事では、メッセージのLParamを調べることで、通常のシャットダウンとログオフを区別できることを示唆しています。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa376890%28v=vs.85%29.aspx

アップデート:

Windows XP Embeddedで実行するアプリケーションを開発していますが、私の場合、LParamは毎回 0 です。

Windows 7 または Windows XP Home でアプリケーションをテストすると、予想される $80000000 が得られます。

どんなポインタでも大歓迎です!

0 投票する
1 に答える
74 参照

java - 終了時に実行中の .jar ファイルに関する情報を収集することは可能ですか?

終了時に、実行中の .jar ファイル内の既存のすべての変数に関する情報を収集することは可能ですか? さまざまなサーバーの Linux コマンドラインでアプリケーションを実行していますが、システムの 10% で jar が動作しなくなったときに問題をデバッグしようとしています。

Android ではonDestroy()、アプリの終了時にタスクを実行するために上書きできるメソッドが呼び出されます。ネイティブ Java アプリケーションで同様の可能性はありますか? その場合でも、どのようにデータを収集できますか?

0 投票する
1 に答える
1210 参照

c# - シャットダウンと再起動を区別するためにC#でNTShutdownSystemをフックする方法

残念ながら、WM_QUERYENDSESSIONをリッスンするときに、ユーザーが再起動またはシャットダウンを要求した場合、情報は取得されません。これは本当に悪い設計ですが、Windowsのやり方なので、システムに再起動またはシャットダウンを実行するように指示するパラメーターを取得するNTShutdownSystemへの呼び出しをフックすることを考えていました。

問題は、これをC#で実際にどのように達成できるかということです。NTShutdownSystemに渡されるパラメーターを判別するために使用できるある種のフックを取得し、その情報を保存したいと思います。その後、ユーザーが意図したとおりに「実際の」NTShutdownSystemと呼びたいと思います。

これを説明するサンプルコードはありますか?

0 投票する
1 に答える
3456 参照

clojure - 「lein run」で実行するとシャットダウンフックが起動しない

次のコードがあります。

および次の project.clj

「lein run」で実行すると、シャットダウンフックは通常のプログラム実行時にのみ実行され、SIGINT (Ctrl-C) を受信したときは実行されません。

lein の外で実行された同じコードは、SIGINT を受信した場合でも、シャットダウン フックを正常に実行します。

lein から実行して Ctrl-C で中止するときに、シャットダウン フックを実行するにはどうすればよいですか?

0 投票する
1 に答える
692 参照

c# - C#1からJavaアプリケーションを正しくシャットダウンする方法

使用すると正しくシャットダウンするJavaアプリケーションがあります。JavaアプリケーションはシャットダウンCTRL-C前にすべてのデータを保存します。今、私はを使用してC#コンソールアプリケーションからこのJavaアプリケーションをシャットダウンしようとしてProcess.Close()いますが、これを使用するとアプリケーションはデータを保存しません、私も試しProcess.CloseMainWindow()ましたが、これを使用しても何も起こりProcess.Kill()ません。 。

C#コンソールアプリケーションからJavaアプリケーションのシャットダウンフックを上げるにはどうすればよいですか?

0 投票する
2 に答える
674 参照

c# - C# で CTRL-C をシミュレートして Java アプリケーションをシャットダウンする

C#コンソールアプリケーションからJavaアプリケーションを正しくシャットダウンするコードを作成しましInputSimulatorたが、試してみると、期待した結果が得られませんでした。

キーボード CTRL-C を使用して Java アプリケーションを閉じると、

InputSimulator を使用して Java アプリケーションを閉じると、

フル スレッド ダンプ Java HotSpot(TM) クライアント VM (20.6-b01 混合モード):

"DestroyJavaVM" prio=6 tid=0x4b524000 nid=0x6f4 条件 [0x00000000] java.lang.Thread.State: RUNNABLE で待機中

"Thread-1" prio=6 tid=0x4b523800 nid=0x65c 条件 [0x4cd0f000] で待機.run(DeadlockDetector.java:76) で java.lang.Thread.run(不明なソース)

"server-rdc-acceptor" prio=6 tid=0x4b523000 nid=0x102c 実行可能 [0x4cc7f000] java.lang.Thread.State: sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0 (ネイティブ メソッド) で実行可能です。 ch.WindowsSelectorImpl$SubSelector.poll(不明なソース) at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(不明なソース)

私のInputSimulatorを使用:

私が間違っているのは何ですか?

0 投票する
2 に答える
543 参照

scala - Java/Scalaシャットダウンフック-noclassdeffounderror

マルチスレッドのScalaアプリケーションがあり、オブジェクトに対してshutdown()メソッドを呼び出すシャットダウンフックがあります。残念ながら、これは信頼できないようです。多くの場合、SIGINTの処理に失敗し、無名関数でNoClassDefFoundErrorをスローします。

このシャットダウンハンドラーをより堅牢にするにはどうすればよいですか?