問題タブ [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.
c - select() でパイプから読み取り中にシグナルをキャッチする
パイプで select() を使用する- これが私がやっていることであり、今それをキャッチする必要がありSIGTERM
ます。どうすればできますか?select()
エラー (< 0) が返されたときにそれを行う必要がありますか?
c - シグナルハンドラへの引数の提供/受け渡し
シグナルハンドラに引数を提供/渡すことはできますか?
ハンドラーは次のようになります。
何か特別なことをしたい場合、つまり一時ファイルを削除したい場合、それらのファイルを引数としてこのハンドラに渡すことはできますか?
編集 0: 回答ありがとうございます。私たちは通常、グローバル変数の使用を回避/推奨しません。この場合、巨大なプログラムがあると、さまざまな場所で問題が発生する可能性があり、多くのクリーンアップを行う必要がある場合があります。API がこのように設計されたのはなぜですか?
c - CTRL+Cは私のプログラムを殺していません
fork
私は子供を対象としたプログラムを持っています。次の信号をキャッチしようとしています:SIGINT
、、。SIGPIPE
SIGTERM
Ctrl+ (SIGINT --afaikcを生成します)では、シグナルハンドラーで実行しているメインプログラムが終了する前に、子プロセスを強制終了するようにします。
今、私の期待/理解Ctrlは、親プロセスが+で自動的に強制終了されることcです。しかし、それは起こっていません。
Ctrl+をオンcにすると、シェルプロンプトが返されますが、でプロセスを確認できますps
。だから基本的に私のメインプログラムは殺されていません。
私の理解は間違っていますか?
編集0:1つの観察:Ctrl+の前c、ps
メインプログラムのステータスは言うS
がCtrl+の後cにI
。
c - SIGSEGVを受信したときに1つのスレッドのみを終了することは可能ですか?
複数のスレッドを開始するアプリケーションがあります。シグナルハンドラーを使用してシグナルをキャッチしています。
アプリケーションを終了させたくありませんSIGSEGV
; シグナルが発生したスレッドのみを終了し、他のスレッドでアプリケーション全体のフローを継続したいと思います。出来ますか?
c - sigactionで元の信号を復元する
sigactionを定義しましたが、正常に動作します。ただし、アクションが完了した後、元の信号を復元したいと思います。これは私のシグアクションです:
シグナルハンドラはJNI_Onloadから設定されます。
java - Jythonでキーボード割り込み(CTRL-C)をどのようにインターセプトしますか?
これは私が試したことです...
これはhttp://www.javaspecialists.co.za/archive/Issue043.htmlに基づいていますが、明らかに何かが欠けています。
c - main関数でシグナルハンドラーが呼び出されていません
私はシグナルハンドラーがどのように機能するかを研究しようとしています。100usごとに1回アラーム信号を発生させるコードを作成しました。ただし、信号は発生しません。コードは次のとおりです。
誰かが私が間違っていることを説明できますか?
ありがとう
java - bash を使用して Java メソッドを起動する方法
Java アプリケーションを起動するとします。
java -cp whatever.jar com.example.Start
プロセスは正常に起動し、PID 1314 で実行を続けます。
ここで、システムがユーザーの要求によってメソッドを起動するようにしたいと思います。
bash を使用して実行中の PID を通知し、メソッドを起動するにはどうすればよいですか?