問題タブ [signal-handling]

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

c - select() でパイプから読み取り中にシグナルをキャッチする

パイプで select() を使用する- これが私がやっていることであり、今それをキャッチする必要がありSIGTERMます。どうすればできますか?select()エラー (< 0) が返されたときにそれを行う必要がありますか?

0 投票する
7 に答える
84513 参照

c - シグナルハンドラへの引数の提供/受け渡し

シグナルハンドラに引数を提供/渡すことはできますか?

ハンドラーは次のようになります。

何か特別なことをしたい場合、つまり一時ファイルを削除したい場合、それらのファイルを引数としてこのハンドラに渡すことはできますか?

編集 0: 回答ありがとうございます。私たちは通常、グローバル変数の使用を回避/推奨しません。この場合、巨大なプログラムがあると、さまざまな場所で問題が発生する可能性があり、多くのクリーンアップを行う必要がある場合があります。API がこのように設計されたのはなぜですか?

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

c - キルはシグナルに関して安全ではありません-代替手段はありますか?

ここで、 killはシグナルに関して安全ではないことを読みました。

シグナルハンドラー内のクリーンアップの一部として子プロセスを強制終了する場合、他に何を使用する必要がありますか?私の選択肢は何ですか?

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

c - CTRL+Cは私のプログラムを殺していません

fork私は子供を対象としたプログラムを持っています。次の信号をキャッチしようとしています:SIGINT、、。SIGPIPESIGTERM

Ctrl+ (SIGINT --afaikcを生成します)では、シグナルハンドラーで実行しているメインプログラムが終了する前に、子プロセスを強制終了するようにします。

今、私の期待/理解Ctrlは、親プロセスが+で自動的に強制終了されることcです。しかし、それは起こっていません。

Ctrl+をオンcにすると、シェルプロンプトが返されますが、でプロセスを確認できますps。だから基本的に私のメインプログラムは殺されていません。

私の理解は間違っていますか?

編集0:1つの観察:Ctrl+の前cpsメインプログラムのステータスは言うSCtrl+の後cI

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

c - SIGSEGVを受信したときに1つのスレッドのみを終了することは可能ですか?

複数のスレッドを開始するアプリケーションがあります。シグナルハンドラーを使用してシグナルをキャッチしています。

アプリケーションを終了させたくありませんSIGSEGV; シグナルが発生したスレッドのみを終了し、他のスレッドでアプリケーション全体のフローを継続したいと思います。出来ますか?

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

c - sigactionで元の信号を復元する

sigactionを定義しましたが、正常に動作します。ただし、アクションが完了した後、元の信号を復元したいと思います。これは私のシグアクションです:

シグナルハンドラはJNI_Onloadから設定されます。

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

java - Jythonでキーボード割り込み(CTRL-C)をどのようにインターセプトしますか?

これは私が試したことです...

これはhttp://www.javaspecialists.co.za/archive/Issue043.htmlに基づいていますが、明らかに何かが欠けています。

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

c - main関数でシグナルハンドラーが呼び出されていません

私はシグナルハンドラーがどのように機能するかを研究しようとしています。100usごとに1回アラーム信号を発生させるコードを作成しました。ただし、信号は発生しません。コードは次のとおりです。

誰かが私が間違っていることを説明できますか?

ありがとう

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

java - bash を使用して Java メソッドを起動する方法

Java アプリケーションを起動するとします。

java -cp whatever.jar com.example.Start

プロセスは正常に起動し、PID 1314 で実行を続けます。

ここで、システムがユーザーの要求によってメソッドを起動するようにしたいと思います。
bash を使用して実行中の PID を通知し、メソッドを起動するにはどうすればよいですか?