問題タブ [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 に答える
2327 参照

c++ - C++: SIGINT の後も実行を継続

さて、私はかなり重い分析を行っているプログラムを書いています。すぐに停止できるようにしたいと思います。

main の先頭に追加signal(SIGINT, terminate);し、次のように終了を定義しました。

Linux では、これは期待どおりに機能しました。つまり、ユーザーの入力を待ちました。しかし、Windowsで同じことをしようとすると、メッセージが表示され、とにかく終了します。

SIGINT がプログラムをすぐに閉じないようにする方法はありますか?

アップデート:

私が試したとき

Gregory が示唆したように、プログラムはユーザー入力を停止せずに不意に終了しました。

更新 2: 何が原因か正確にはわかりませんが、コードは現在機能しています。助けてくれてありがとう。

0 投票する
5 に答える
5651 参照

c - 独自のハンドラー内でシグナルをキャッチする

KeyboardInterruptを一度キャッチした後、もう一度「Ctrl+C」を押すと、SIGINT が処理されません... 「Ctrl+C」を押すたびに「Into handler」が出力されるようにするつもりです。

「SIGINT handler()」自体の中で SIGINT をキャッチしたい..

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

objective-c - object-C の NSPIPE に control+c (SIGINT) を送信する

NSTask を介して生成された openvpn タスクを終了しようとしています。

私の質問:

NSTask の入力 NSPipe にctrl+ (SIGINT)を送信する必要がありますか?c

または、 kill( pid, SIGINT ); の使用を考えていました。ただし、プロセス ID を迂回して決定する必要があるため ([task processIdentifier] はここでは役に立ちません)、はるかに複雑になります。元の NSTask 呼び出しは次のとおりです。

それは良くありません、私は知っていますが、それは一度だけ呼び出され、その場合は sudo パスワードがすでに入力されています。

0 投票する
3 に答える
4991 参照

python - PythonでサブプロセスにSIGINTが渡されるのを止める方法は?

私の python スクリプトは、シグナルプロセスモジュールで SIGINT シグナルをインターセプトして早期終了を防ぎますが、このシグナルは Popen で開いたサブプロセスに渡されます。このシグナルをサブプロセスに渡さないようにして、ユーザーが ctrl-c を押したときに途中で終了しないようにする方法はありますか?

0 投票する
3 に答える
3758 参照

signals - 監視対象を使用した管理対象プロセスへのシグナルの受け渡し

Linuxターゲット用にCで記述しているFastCGIアプリケーションを生成および管理するためにsupervisordを使用しています。SIGINTを受信したときにアプリケーションを正常に終了するシグナルハンドラーがあります。ターミナルウィンドウでアプリを実行し、Ctrl-Cを発行して終了することで、シグナルハンドラーが希望どおりに機能することを確認しました。

(supervisorctlを介して)supervisordに「shutdown」コマンドを発行すると、supervisordはSIGKILLを呼び出さずにアプリを強制的に終了できないようです。

私のsupervisord.confファイルには次のものがあります

私は、shutdownコマンドの呼び出し時にsupervisordが「stopsignal」を発行することを前提としているため、INFOステートメントは、私のアプリがsupervisordによって発行されたSIGINTに応答していないことを示しています。

監視対象とアプリの間を通過する信号をデバッグするにはどうすればよいですか?

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

python - シグナルハンドラ、python

マルチスレッド プログラムがあり、signal.signal(SIGINT,func) を使用して、ctrl c が押されたときにすべてのスレッドを強制終了します。私が持っている質問はこれです:

Python の main から signal.signal(...) を呼び出す必要があります。ループでそれを呼び出す必要がありますか、それとも一度だけ設定できますか?ユーザーが ctrl c を押すたびに、シグナルがキャッチされますか?

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

python - Pythonプログラムのスレッド化でSIGINTをキャッチするにはどうすればよいですか?

モジュールスレッドとクラスを使用している場合Thread()、キャッチできませんSIGINT(コンソールではCtrl+ )キャッチできません。C

なぜそして何ができるのですか?

簡単なテストプログラム:

Ctrl+をC押しても、何も起こりません。

0 投票する
3 に答える
1301 参照

c - Ctrl+C からの SIGINT の使用

よし、シグナルを解釈するために sighandler を使っている。この目的のためにそれはCtrl+Cであり、Ctrl+Cが入力されると何らかのアクションが実行され、すべてがうまくいく。^C入出力に現れる

たとえば、私がこのコードを持っているとしましょう

出力は次のようになります

^CUser pressed Ctrl+C

これを単純にするにはどうすればよいですか

User pressed Ctrl+C?

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

c - 単純なシェルでのセグメンテーション違反

単純なcシェルのコードを書いています。最後の10個のコマンドの履歴を保存します。'r'がコマンドとして入力された場合、履歴から最新のコマンドを実行する必要があります。また、「r x」が入力された場合、「x」は履歴から実行されるコマンドの最初の文字であり、その文字で始まる最新のコマンドを実行します。

履歴からinputBufferへのコピーで問題が発生しました。私がやろうとすると、セグメンテーション違反が発生します。

これがコードです(私はそれを修正することを期待して多くの異なることを試みてきました)。アドバイスをいただければ幸いです。

0 投票する
3 に答える
22444 参照

c++ - SIGINTまたはSIGSTPが発行された場合、デストラクタは呼び出されますか?

ユーザー定義のデストラクタを持つクラスがあります。クラスが最初にインスタンス化され、プログラムの実行中にSIGINTが発行された場合(UNIXでCTRL + Cを使用)、デストラクタが呼び出されますか?SIGSTP(UNIXではCTRL + Z)の動作は何ですか?