問題タブ [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.
c - C ヘッダー ファイルで volatile sig_atomic_t をグローバルにする
msh.c ファイルで次のように初期化されたグローバル変数を作成しようとしています。
これだけでもよさそうです。ただし、proto.h ファイル (このプロジェクトのすべての c ファイルに含まれています) に移動し、次のように入力すると:
一連のエラーがスローされます。
この変数をグローバルにするにはどうすればよいですか? ありがとう。
node.js - Node.jsのデフォルトのSIGINT?
Node.jsのソースコードを検索してみましたが、見つかりませんでした。デフォルトでは、次の例でデフォルトでSIGINT( Ctrl+ )を処理するNode.jsコードはどこにありますか。C
node.js - Node.js サーバーを正常に閉じる
重複の可能性:
node.JS HTTP サーバーの正常なシャットダウン
http
モジュールを使用してNode.jsに基本的なサーバーがあります。イベントがプログラムを閉じてサーバーを停止することはわかっていますが、サーバーを閉じるSIGINT
ために使用する方がきれいに思えserver.close([callback])
ます(ここSIGINT
のように、イベントでこれを行っています)。サーバーがリクエストを受信していない限り、これはうまく機能します。私の応答が次のように単純であっても、サーバーが要求を受け取るとすぐに:
からのコールバックserver.close()
は呼び出されず、詳しく調べてみると、0 ではなく 1 であることがわかりserver.connections
ます (たとえば、3 つの外部スクリプトを含む HTML ページを提供する場合、server.connections
4 になります)。
これらの接続が によって終了されないのはなぜres.end()
ですか? サーバーを正常に停止するにはどうすればよいですか? それとも、これは想像上の問題に対してやり過ぎなのでしょうか?
node.js - Express.jsでSIGINTを適切に処理するにはどうすればよいですか?
Express.jsサービスがによって停止されたときに、いくつかの便利なことを行う必要がありますSIGINT
。Express.jsバージョン3.0.6を使用すると、これが機能するはずだと理解しています。
SIGINT
しかし、 (Control- C)を2回発行しない限り、このプロセスではBashプロンプトが返されません。
もう1つの注意点。このExpress.jsサービスを開始し、リクエストを送信しないと、SIGINT
正しく終了します。
明らかに、私がここで見逃している基本的なものがありますか?
perl - Perl スクリプトから SIGINT (Ctrl-C) を作成/発生させます - そして、ダイ ハンドラーからステップ モードでデバッガー エントリを引き起こしますか?
デバッグしようとしている Perl (Linux 環境) のかなり複雑なプログラムに問題があります。ここの簡単なスニペットで問題をシミュレートできます ( test.pl
):
このプログラムを実行すると、次のように終了します。
だから、今私はそれをデバッグしたいと思います-しかし、エラーによりプログラムが終了し、デバッガーが終了します:
次に、デバッガー (PerlMonks) でブレーク オン ワーニングを見つけました。だから私はこれを追加しようとしました:
...しかし、これもデバッガーを殺します:
さて、問題は、Ctrl-C でプログラムを中断すると、通常、デバッガーがステップ モードに入るということです。たとえば、 を設定my $numelems = 100000000;
し、ループ中に Ctrl-C を押すと、次のようにデバッグできます。
これで、ソース perl プログラムにブレーク ポイントを挿入できます。
しかし、次の場合にループに入ります$ix = 0
。
...そして、問題のある部分に到達するために 10000 個の要素をステップスルーしたくありません:)
それで、私は次のように考えました-Perlスクリプト自体からSIGINT(Ctrl-C)を発生/生成/作成する方法があれば、ダイハンドラーからそれを発生させ、できればステップインを引き起こすことができますプロセスが終了する前にデバッガー。だから、私の質問は次のとおりです。
- Perl スクリプトから SIGINT を上げることは可能ですか?
- 前のことが可能である場合、プロセスが終了する前に、ダイ ハンドラから Ctrl-C を使用してデバッガ ステップ モードに入ることができますか?
- 前のことが不可能
die
な場合 - プログラムs の行で、デバッガーのステップ モードに入る必要がある可能性はありますか?
sigint - オーバーライド「^c」または「ctrl-c」はシェルインタープリターの割り込み信号です
すべてのシェルの信号割り込み文字としてctrl-cをオーバーライドし、別のものに置き換えたいと思います。sttyとxmodmapを調べましたが、現時点で理解できるものは見つかりませんでした。
誰かがいくつかのアイデアを持っているなら、私はそれを大いに感謝します。
c - setpgrp / setpgidが失敗し(?)、LinuxではなくMacOSXで動作します
子コマンドを実行するプログラムを作成しようとしていますが、Ctrl+Cでその子を強制終了することはできません。
setpgid/setpgrpでこれを達成できることを読みました。
次のコードはOSXで動作しますが、Linux(2.6.32、Ubuntu 10.04)では次のように実行されます。
出力は発生せず、プログラムをSIGINTで強制終了することはできません。
setpgrpの呼び出しをコメントアウトすると、残りのコードが機能していることがわかります。
ruby - Ctrl-C (SIGINT) でデバッガーに入るように ruby を設定するにはどうすればよいですか?
ctrl-C を入力して (または SIGINT を送信して) デバッガーに入りたいと思います。デバッガーをインストールし(Ruby 1.9.3 を実行しています)、動作することを確認しました。これをセットアップ ファイルに追加しました (これは Padrino 用ですが、Rails でも同様であると想定しています)。
...しかし、Ctrl-C を入力してもデバッガーは呼び出されません。実際、 に置き換えた場合debugger
、puts "saw an interrupt!"
Ctrl-C を入力しても印刷は行われません。
アップデート
Mike Dunlaveyからのこの提案に従って、デバッガー内から明示的に呼び出してみました。catch Interrupt
喜びはありません -- 割り込みがデバッガに入りませんでした。
私は何が欠けていますか?
c - SIGINT を使用して、accept() または read() の待機から抜け出すにはどうすればよいですか?
現在、シグナル (この場合は SIGINT) を使用して、accept() および/または write() の待機から抜け出そうとしています。私のプログラムは期待どおりに終了しません。
私がハングアップしているメインから切り取ったものは主に次のとおりです。
これをヒットしてシグナルを使用して戻ると、まだこのコード行でスタックしており、ユーザーがソケットに接続するのを待っています。ハンドラーの x は、このコードが含まれる外側のループを表します。
私がやろうとしていることを行うためのより良い方法はありますか? また、これが十分な情報でない場合はお知らせください。
ありがとうございました。
編集:
メインの一番上に戻ってきたシグナルのチェックです。これがあなたが求めていたものだと思います:
java - Java シグナル処理後、メインプログラムに戻る
MI には、for ループで始まり、10 回スピンするプログラムがあり、1 つのループは 1 秒間続きます。信号 (CTRL+C) を処理する必要があり、処理中に独自の for ループを実行し、停止した後、メイン ループに戻る必要があります。上記のほとんどすべてを行うことができましたが、ループは個別に実行されません。彼らはそれを並行して行います。あなたが助けてくれることを願っています...ありがとう:)
ところで、私のコードは次のとおりです。