問題タブ [signals]
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 - Perl: 本来あるべきようにブロッキング シグナルが遅延しない -> テスト コードが提供される
私が書いているPerlスクリプトでは、 and シグナルをブロックし、バックティック内でプロセスを実行してから、 and シグナルのブロックを解除するINT
という問題があります。またはが子プロセスに到達して強制終了 するのを防ぎたい。QUIT
INT
QUIT
INT
QUIT
スクリプトは、コード内の適切なポイントで正常にブロックおよびブロック解除しますが、多くの参考文献が言うように、ブロック モードにある間、シグナルを遅延させず、構成したハンドラーを実行しません。SIGINT
ブロックまたはブロック解除コマンドの前後に送信でき、それが尊重されるため、ブロック解除されていることがわかります。
OS: Linux 2.6.30 Perl バージョン: 5.8.8
コード スニペット:
bash - TERMのbashトラップ-私は何を間違っているのですか?
このhack.cプログラムを考えると:
そしてこのhack.shbashスクリプト:
hack.shを実行すると、2つのプロセスが作成されます。1つはbash用、もう1つはCタスク用です。TERMシグナルがbashプロセスに送信されても、Cプロセスは無傷です。
ここで、元のbashがRuntime.exec()を使用してJavaプログラムから起動されたとすると、それを制御できるのはProcess.destroy()(TERMをbashプロセスに送信する)だけですか?Cプロセスを起動したbashと一緒に終了させたいとしましょう。
私はbashでこのようなことを試みてきました:
つまり、TERMシグナルをキャッチし、それをプロセスグループ全体に再ブロードキャストするトラップ句。これは私には機能しません-そのトラップ句を含むbashプロセスはTERMシグナルを無視します。
ここで何が欠けていますか?
c - c signal() + alarm() の代替
私はいくつかの FastCGI アプリを構築していますが、アイドル状態になった後に lighttpd がそれらを強制終了しないというバグがあるので、それらを自分で閉じようとしています。
使ってみた
close 関数に exit(0) を実行させると、ほぼうまく機能します。
問題は、メイン プログラムのループが実行されるたびに close 関数が呼び出されることです (ループをリセットするたびに alarm(300) を呼び出します)。alarm() のマニュアル ページを読みましたが、同じ値で複数回呼び出すと SIGALRM が作動するようには見えないので、Lighttpd がアラーム信号を送信していると想定しています。
大きな質問です!特定の間隔の後にメソッドを実行し、その間隔を SIGALRM なしでリセット可能にする方法はありますか? 目覚ましも複数あればいいのに。
これまでのアプリ全体は次のとおりです。
c - gtk シグナルを作成して送信する
GTK シグナルを作成して送信しようとしています:
信号を発する私のコードは次のとおりです。
そして、信号を処理する私のコードは次のとおりです。
コードを実行すると、次のエラーが表示されます。
GLib-GObject-CRITICAL **: g
_closure_
invoke: assertion `closure->marshal || クロージャ ->meta_marshal' に失敗しました
マーシャラーを関数に渡すことと関係があることは知っていますがg_signal_new
、マーシャラーが何であるかはわかりません。ドキュメントを理解できず、オンラインの例はほとんどありません。自分のシグナルを宣言して接続するにはどうすればよいですか?
sockets - 接続されていないソケットに書き込むと、最初に SIGPIPE が送信されるのはなぜですか?
POSIX 環境では非常に多くのエラーが発生する可能性があります。それらのいくつか (特に接続されていないソケットへの書き込みなど) がシグナルの形で特別な扱いを受けるのはなぜですか?
python - LinuxでJythonを使用してPythonモジュールの「シグナル」をインポートできないのはなぜですか?
Jythonで省略されている「signal」クラスへの参照が見つかりません。Jython2.1の使用。
ありがとう
pthreads - pthreads : クリティカル セクション内からの pthread_cond_signal()
スレッド A に次のコードがあります。pthread_cond_wait()
スレッドBに次のコードがあり、スレッドAに通知します
他にスレッドがない場合、pthread_cond_signal(&my_wait)
以下に示すようにクリティカル セクション ブロックの外に移動しても違いはありますか?
c++ - ctrl-c イベントをキャッチするにはどうすればよいですか?
CtrlC++ で+Cイベントをキャッチするにはどうすればよいですか?
linux - mq_send はアトミックですか?
mq_send の実行中にマルチスレッド プログラムが SIGSTOP シグナルを受信するとどうなるか教えてもらえますか?
python - Pythonでシグナルをトラップする
ドキュメントによると:
クリティカルセクションからの信号を一時的に「ブロック」する方法はありません(これはすべてのUnixフレーバーでサポートされているわけではないため)。
signal.signal(signum,SIG_IGN)
何が私がそれをブロックするために使用し、次に信号を追加するのを止めますか?