問題タブ [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 に答える
12538 参照

java - CTRL-C は Java プログラムでどのように機能しますか

ctrlコンソールで-を押すcと、どのシーケンスでアプリケーション スレッドが停止し、シャットダウン フックが呼び出されますか?

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

java - シャットダウンフックでJavaのすべてのスレッドに割り込む

ローカルのtmpディレクトリに保存された一連の一時ファイルを作成する単純なJavaプログラムがあります。プログラムを終了する前に、すべてのファイルをウォークスルーして削除し、次にtmpディレクトリを削除する単純なシャットダウンフックを追加しました。コードは次のとおりです。

listFiles()私の問題は、これらのファイルを作成するスレッドがシャットダウンフックの起動時に終了していない可能性があるため、が呼び出された後に作成されたファイルがある可能性があることです。これにより、tmpディレクトリは削除されません。私はこれについて2つのハックを思いついた:

ハック#1:

ハック#2:

どちらも特に良い解決策ではありません。理想的なのは、すべてのスレッドが終了するまでシャットダウンフックを待機させてから続行することです。これができるかどうか誰かが知っていますか?

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

java - Cygwin CTRL-C (シグナル割り込み) が正しく機能しない - JVM シャットダウン フックが開始しない

プログラムの終了/中断をクリーンアップするためにシャットダウン フックを利用する Java アプリケーションに取り組んでいますが、Cygwin の CTRL-C の実装がシャットダウン フックをトリガーしないように見えることに気付きました。表面的には、プロセスを中断し、制御をコマンド ラインに戻したように見えますが、プロセスのシャットダウン フックはまったくトリガーされないため、クリーンアップは行われません。

cmdではキャッチされますが、さまざまな制約があるため、どうにかしてCygwinで動作させる必要があります。

Cygwin を介して実行中のプロセスで SIGINT を起動する方法はありますか、または中断と終了をクリーンアップするために使用できるシャットダウン フックの代替手段はありますか?

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

java - シャットダウンフックを使用して Guava AbstractScheduledService を適切に停止するには?

スケジューラで AbstractScheduledService を使用しています。次のような単純なパターン:

ここで、次のような典型的なシャットダウン フックを実装したいと思います: (以下のスニペットはメイン メソッドになります)

シャットダウン フックは、典型的なドキュメントの例からのものです。サービス自体が別のスレッドで実行されているため、Guava サービス パターンではうまく機能しないようです。

私のサービスには、runOneIteration() ロジックにポーリング ループがあります。目前の現在のタスクを完了してから、現在の反復でビジーだった最近の時間に Shutdown フックが使用されたため、keepRunning が false になっていることがわかったら、正常にシャットダウンします。

これを適切に行う方法はありますか (現在の反復を完了してからシャットダウンします)。

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

scala - ^C (scala) でシャットダウン フックが開始されない

クリーンでグレースフルなシャットダウンを取得しようとしていますが、何らかの理由で実行されません。私はもう試した:

また:

ThreadOperations.delayOnThread定義は次のとおりです。

しかし、プログラム (実行可能 jar、二重アクティベーション) を実行すると、フックが開始されません。それで、私は何を間違っていますか?scalaにシャットダウンフックを追加する正しい方法は何ですか? それは、私が二重アクティベーションを使用しているという事実に何らかの形で関連していますか?

二重アクティベーションは次のように行われます。

(scala バージョン: 2.9.2) ありがとうございます。

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

java - Eclipse でシャットダウン フックが機能しない

次の方法でシャットダウンフックを追加しました。

通常は正常に動作しますが、Eclipse で赤い停止ボタンをクリックすると動作しません。Eclipse でシャットダウン フックを呼び出す方法はありますか?

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

java - UNIXからのシャットダウンフック

UNIXサーバーでJavaプログラムを正常に終了させようとしています。jarファイルがあります。これは午前中にcronジョブから開始します。次に、夕方にシャットダウンしたいときに、PIDを見つけてを呼び出すスクリプトを呼び出すcronジョブがありますkill -9 <PID>。ただし、この方法で終了すると、シャットダウンフックがアクティブになっていないようです。私も試しましたがkill <PID>(-9はありません)、同じ問題が発生します。シャットダウンフックが呼び出されることを確認するにはどうすればよいですか?あるいは、毎日私のプロセスを殺すためのより良い方法があるかもしれません。

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

java - 複数のスレッドを持つ Java シャットダウン フック

ubuntu サーバーでシャットダウン フックを動作させようとしていますが、複数のスレッドに問題があるようです。基本的な ShutdownHook を使用すると、次のコードは、 を使用してプロセスを強制終了したときに機能しkill <PID>ます。つまり、シャットダウン動作が有効になります。

ただし、追加のスレッドを使用したこの同じコードはそうではありません

何か案は?

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

java - Java プロセス (Jetty start.jar など) を起動、シャットダウンするモジュールはありますか?

ほとんどのサーバーは、呼び出し (場合によっては を介し​​て) を介してサーバーを起動またはシャットダウンするための何らかのメカニズムを好み、Jettyまたは提供します。常にメインから実行し続けることができます:Weblogicjmx

そして、プロセス PID を kill します。しかし、サイバー スペースにはさまざまな機能を追加するオープンソースの優れたソリューションが存在するのではないかと考えましたJMX

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

objective-c - iOS 5 - シャットダウンフック

アプリのシャットダウン時に特定のクリーンアップ タスクを実行したいと考えています。次のようなオブザーバーを使用します。

アプリがバックグラウンドになったときに通知を受け取る。

問題は、アプリがクラッシュした場合、何かを行うための通知がないことです。

testflight.com がフックを使用してクラッシュ情報を回復するのを見たので、クラッシュを検出していくつかのタスクを実行することもできるかどうか疑問に思っていました。

私の懸念は、次への呼び出しに関するものです。

アプリがクラッシュしたときに行われず、ユーザーには常に場所のアイコンが表示されたままになります。クラッシュが頻繁に発生するはずがないことはわかっていますが、このような状況下でできることなら、できる限りクリーンアップしたいと考えています。