問題タブ [sigint]

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 投票する
1 に答える
21860 参照

shell - 特定の画面セッションに ctrl-c を送信する

名前付き画面セッション内でプロセスを起動するスクリプトを設計しています。

したがってbash myscript.sh start test、test という名前の画面を作成test.cfgし、ソフトウェアで実行します。

ここで、スクリプトで特定の画面セッションにアクセスし、CTRL+Cを実行して実行中のプロセスを停止し、画面セッションを強制終了できるようにします。

このようなもの:

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

windows - Windows: コマンド ラインからプロセスにシグナル (SIGNINT または SIGBREAK) を送信する方法

WindowsコマンドラインからプロセスにシグナルSIGINTを送信する最良の方法は何ですか? SIGBREAK私の場合、CTRL-Breakイベントをバッチ ファイルから実行中のJavaプロセスに送信したいと考えています。

プログラムによる解決策は探していませんが、既存のコマンド ライン ツールを探しています。信頼できる情報源から公開されている必要があります。

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

c++ - Windows/MinGW で「CTRL+C」をキャッチするための「SIGINT」(posix) シグナルと同等

Linux/gcc プログラムを Windows に移植しており、両方に共通の例外処理を実装しています。SIGINTMinGW/gccのシグナルに相当するものは何だろうと思っていました。

Linux での処理方法は次のとおりです。

Windows では、これは次のようになります。

私の問題は、Windows で利用可能なSIGINTものに相当するものがないことです。EXCEPTION_*

Windows (MinGW/gcc) で「CTRL+C」の割り込みをキャッチするにはどうすればよいですか?

どうもありがとう。

0 投票する
4 に答える
7950 参照

c - Readline: SIGINT で新しいプロンプトを取得する

readline を使用して、次のようなコードを取得しました。

インターセプトSIGINT(ユーザーが を押すCtrl+C) するように設定したので、シグナル ハンドラーhandle_signals()が動作していることがわかります。ただし、制御が に戻るとreadline()、入力前と同じ行のテキストが使用されます。私がやりたいのは、readline が現在のテキスト行を「キャンセル」して、BASH シェルのように新しい行を表示することです。そのようなもの:

これを機能させる可能性はありますか?私が読んだメーリング リストのどこかで を使用することが言及されていましlongjmp(2)たが、それは実際には良い考えとは思えません。

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

kill - killでsudoで実行されているプロセスを終了する方法

非特権ユーザー アカウントで bash を使用すると、次のことができます。

Ctrl-c で強制終了します。ただし、別の端末から SIGINT または SIGKILL を送信しても、その目的には機能しません。

それがなぜなのか、誰もが知っていますか?たとえば、スクリプトで使用するために、シグナルを送信するプロセスを強制終了できるようにしたいと考えています。

よろしく。

0 投票する
4 に答える
6889 参照

java - Java スレッドとシャットダウン フック

興味深い問題に遭遇しました。Java でスレッドが呼び出した場合、 をSystem.exit()介して参加できないようThread.join()です。

アプリケーションの後にシャットダウン フックを使用してクリーンアップしたい場合、次のような問題が発生します。

アイデアは、スレッドがそれぞれのリソースを終了する前に、それらのリソースを閉じることを保証することです。問題は、シャットダウン フックを呼び出すことができる 3 つの状況があることです。彼らです:

  1. ユーザーが [ctrl] + [C] を押します。
  2. リーダー スレッドが完了し、 を呼び出しますSystem.exit()
  3. 書き込みスレッドが完了し、 を呼び出しますSystem.exit()

ユーザーが [ctrl] + [C] を押す最初のケースは問題なく動作します。しかし、他の 2 つのケースのいずれにおいても、シャットダウン フックは永久にブロックされます。これは、Thread.join()がすでに呼び出されているスレッドに対して呼び出された がSystem.exit()永久にブロックされるという連鎖反応です。

したがって、2つの質問があります。まず、Thread.join(long millis)無期限にブロックしないように代わりに使用できることはわかっていますが、よりエレガントなソリューションを考えられる人はいますか? 第二に、同じスレッドに対して2回呼び出すことができ、2回目はすぐに戻るだけですが、すでにブロックを無期限に呼び出してすぐに返さないスレッドに対してThread.join()呼び出す理由を知っている人はいますか?Thread.join()System.exit()